INTERCAL

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
INTERCAL
linguaggio di programmazione
Codice che stampa 'Hello world!' in INTERCAL
AutoreDon Woods e James Lyon
Data di origine1973
Ultima versione0.30 (2 aprile 2015)
Paradigmiesoterico, imperativo
Tipizzazioneforte
Implementazione di riferimento
Sito webwww.catb.org/~esr/intercal/

INTERCAL (sigla per Compiler Language With No Pronounceable Acronym) è stato il primo linguaggio di programmazione esoterico, sviluppato nel 1972 da Don Woods e James Lyon come parodia degli altri linguaggi di programmazione dell'epoca come FORTRAN, BASIC e ALGOL.[1][2][3][4] Tra gli elementi esoterici di questo linguaggio vi sono degli errori che occorrono se il programmatore non è abbastanza o è troppo gentile e la presenza in alcune sue varianti dell'istruzione COMEFROM, inverso della deprecata GOTO.[5]

Storia[modifica | modifica wikitesto]

INTERCAL è stato sviluppato nel 1972 da due studenti dell' Università di Princeton, Don Woods e James Lyon.[1][2][3][4]

La versione iniziale del linguaggio sviluppata all'Università di Princeton funzionava mediante schede perforate con un sistema di codifica EBCDIC.[6]

Venne successivamente sviluppata una versione per computer moderni, detta implementazione Atari, che utilizza il sistema di codifica ASCII e di conseguenza sostituisce alcuni caratteri.[7]

Descrizione[modifica | modifica wikitesto]

Nella sua sintassi più minimale, il linguaggio prevede che ogni istruzione, su singola riga, sia preceduta dall'identificatore DO, PLEASE DO o PLEASE.[3][8]

Le variabili non devono essere dichiarate, possono avere nomi solamente numerici e possono essere di diversi tipi (numeri interi in 16 bit, numeri interi in 32 bit, array di numeri interi in 16 bit o array di numeri interi in 32 bit). Ogni tipo possiede un identificatore differente (rispettivamente ., :, ,, ;). Il valore viene assegnato alle variabili mediante l'operatore <-. L'input avviene attraverso WRITE IN e l'output attraverso READ OUT.[3][9]

Il compilatore restituisce un errore se PLEASE (in italiano, "perfavore") appare meno di 4 o più di 5 volte, perché il programmatore è stato poco o eccessivamente gentile.[3][5]

Per terminare un programma è necessario usare PLEASE GIVE UP (in italiano, "perfavore arrenditi").[3][9]

Esempio[modifica | modifica wikitesto]

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

Questo esempio stampa a schermo "Hello world!".[5]

Note[modifica | modifica wikitesto]

  1. ^ a b (EN) INTERCAL, su DevX. URL consultato l'11 marzo 2024.
  2. ^ a b (EN) INTERCAL, su techopedia.com.
  3. ^ a b c d e f (EN) INTERCAL (PDF), su cs.uky.edu.
  4. ^ a b Woods, p. 1
  5. ^ a b c (EN) Vitaliy Mokosiy, Weird programming languages, su Medium, 17 luglio 2017. URL consultato l'11 marzo 2024.
  6. ^ Woods, p. 5
  7. ^ Woods, p. 19
  8. ^ Woods, p. 6
  9. ^ a b Woods, p. 9

Bibliografia[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica