Una cosa che avrei voluto fare da piccolo era affiancare il Lisp al Fortran; cosa impossibile, anzi impensabile, ancora adesso è pericoloso nominarlo. Ma sono vecchio e chissene!
Una cosa che in qualche misura --mica ne sono addicto nèh!-- è la storia, non universale ma quella limitata all'informatica, hardware e software; non tutto, solo quello con cui ho avuto (o avrei voluto) a che fare.
L'altro giorno mi capita che --questo lo racconto dopo, prima l'ambiento.
Non sono interessi solo miei, anzi! Per esempio su Twitter Duncan McGregor rilancia un tweet di tanto tempo fa, questo.
Il link originario non c'è più ma seguendo il thread si arriva a una meraviglia, il PDF di The LISP Implementation for the PDP-1 Computer di L. Peter Deutsch e Edmund C. Berkley, roba di DEC, marzo 1964, troppo presto allora ero alle medie.
Nota: L Peter Deutsch rockz! 💥 Davvero.
Bellissimo, c'è tutto, chiaro, conciso, bastano una quarantina di pagine. Non parlo del linguaggio (anche se ...) ma della novità del cap. 6. Input and Output: l'interattività.
È sempre
Salto ma uh! questo lo ricordo, cioè non lui ma un rifacimento in Basic su Prime, fine anni '70, questo
io l'avevo anche tradotto in italiano; siccome il DB (un semplice file di testo) cresceva con le risposte dopo un po' era tutto in italiano. No, non c'era il web, non l'ho diffuso, chissà se c'è ancora qualche nastro... No, il Prime non c'è più, come neanche DEC (Digital Equipment Corporation).
OK, sto divagando ma tanti dei vecchi la REPL l'hanno conosciuta e usata con il Basic, probabilmente il GW-Basic se su IBM (o compatibile) o qualche altra implementazione.
Roba di fine anni '60. Non solo Basic, ovviamente; per esempio bc (1975) e prima ancora il suo antenato dc ("dc is the oldest surviving Unix language" dice la Wiki).
Quelli seri (o solo i vecchi?) allora non usavano il PC, non usavano linguaggi interpretati (cioè, a dirla tutta, usavano il Fortran). Non immaginavano che il futuro sarebbe stato quello che poi è stato. E i linguaggi interpretati avrebbero vinto, confinando i compilati in alcuni settori, non che non siano fondamentali ma è comunque una riserva. E oggi è normale, per esempio Python:
$ python3 -q
>>> 3 + 5
8
>>> a = 8 + (3 + 4) * 5 - 1
>>> a
42
>>>
$
o Node.js, come dire JavaScript:
$ node
> 3 + 5
8
> a = 8 + (3 + 4) * 5 - 1
42
> $
o Racket, evoluzione di Scheme, evoluzione del Lisp:
$ racket
Welcome to Racket v7.8.
> (+ 3 5)
8
> (define a (- (+ 8 (* (+ 3 4) 5)) 1))
> a
42
> ^D
$
Anzi, no: le REPLs ci sono ma si usano ambienti inegrati, IDEs molto più user friendly (io no, ma solo perché sono vecchio).
L'altro giorno salta fuori che Bash, la solita shell, la REPL... Si può fare, ecco un template, fa poco,
n=0
while read -ep "$n > " line; do
if [[ $line == "q!" ]]; then
echo 'bye!'
exit 0
fi
echo ${line^^}
(( n++ ))
done
$ bash repl.sh
0 > esempio di REPL
ESEMPIO DI REPL
1 > fa poco, è un template
FA POCO, È UN TEMPLATE
2 > (si esce come nel vi)
(SI ESCE COME NEL VI)
3 > q!
bye!
$
Idea 💡, forse:
$ eval r=$(( 5 + 4 ))
$ echo $r
9
$
No, meglio Excel (o bc, per me).
🔴🔵
Nessun commento:
Posta un commento