Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

INTERCAL

INTERCAL – ezoteryczny język programowania

INTERCAL, oficjalnie znany jako CLWNPA (Compiler Language With No Pronounceable Acronym), jest jednym z pierwszych ezoterycznych języków programowania. Jego składnia jest celowo skomplikowana, co ma na celu utrudnienie pisania programów i zniekształcenie ich czytelności.

Reklama

Charakterystyka

INTERCAL charakteryzuje się unikalnymi cechami:

  • Uprzejmość: Instrukcje muszą być poprzedzone słowem kluczowym PLEASE, a ich nadużycie skutkuje uznaniem programu za zbyt lizusowskiego.
  • Skok z etykiety: Instrukcja COME FROM działa w przeciwnym kierunku niż standardowe skoki.
  • Grupowanie wyrażeń: Używa znaków ” i ’, co utrudnia czytelność.
  • Brak jawnych procedur: Tylko instrukcja NEXT realizuje skoki do etykiet.
  • Niepewność wykonania: Komendy mogą być wykonane z różnym stopniem pewności, np. „%80”.
  • Ignorowanie instrukcji: Instrukcje mogą być ignorowane przez odpowiednie komendy.
  • Brak zmiennych lokalnych: Mechanizm ramek stosu jest używany zamiast zmiennych lokalnych.
  • Reprezentacja liczb: Liczby są wyświetlane w systemie rzymskim.

Specyfikacja języka jest napisana w humorystyczny sposób, zawierając paradoksalne i zabawne zdania oraz autorskie nazewnictwo dla znaków ASCII.

Reklama

Operatory

INTERCAL wprowadza unikalne operatory:

  • Mingle (lub interleave) ($): Przeplatanie bitów dwóch argumentów.
  • Select (~): Wybiera bity z pierwszego argumentu na podstawie ustawień w drugim.

Posiada także trzy jednoargumentowe operatory: AND, OR, EXOR, które operują na parach bitów.

Zupełność

Mimo swojej złożoności, INTERCAL jest językiem zupełnym w sensie Turinga, co oznacza, że może rozwiązywać dowolne problemy algorytmiczne, chociaż czas wykonania jest znacznie dłuższy niż w tradycyjnych językach programowania.

Przykład: Hello World

Program „Hello, world!” w INTERCAL wygląda następująco:

        DO ,1 <- #13
        PLEASE DO ,1SUB#1 <- #234
        DO ,1SUB#2 <- #112
        DO ,1SUB#3 <- #112
        DO ,1SUB#4 <- #0
        DO ,1SUB#5 <- #64
        DO ,1SUB#6 <- #194
        DO ,1SUB#7 <- #48
        PLEASE DO ,1SUB#8 <- #22
        DO ,1SUB#9 <- #248
        DO ,1SUB#10 <- #168
        DO ,1SUB#11 <- #24
        DO ,1SUB#12 <- #16
        DO ,1SUB#13 <- #214
        PLEASE READ OUT ,1
        PLEASE GIVE UP

Kategoria

Kategoria: Ezoteryczne języki programowania

Reklama
Reklama