IPB

Bienvenue invité ( Connexion | Inscription )

> Revisite du langage LISP,... en Pascal !, Le retrocomputing, c'est aussi le code !
Options
Jaypee
posté 8 Jul 2021, 10:35
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Il y a longtemps, dans une lointaine galaxie... Enfin, presque !
Vers la fin des années 80, bien avant que cela ne devienne une réalité économiquement abordable, des passionnés ont imaginé que les bidouilleurs pourraient fabriquer leur propres robots. Et à cette époque, une revue fut lancée sur cette thématique.
"Micros & Robots" a connu un succès limité, malgré un contenu très à la pointe, voire même un peu élitiste. Et seulement 16 numéros ont été publiés.
C'est à partir du numéro 15, l'avant-dernier que démarre une série de trois articles sur le langage LISP. Trois, 15, 16 et... ? C'est en effet la revue-mère du petit nouveau, l'institution Radio-Plan qui date des années 30, qui a publié le troisième volet.
Pourquoi s'intéresser à une telle antiquité ?
- Comme pour toute antiquité, la comprendre, et admirer le résultat en face de la pauvreté des moyens disponibles pour sa création.
- Pour comprendre comment on a construit ce langage, l'un des tout premiers, avec FORTRAN, autour de 1955.
- Noter de la version de l'article ne sait pas compter, j'ai donc décidé d'ajouter les 4 opérations arithmétiques, en lisant la littérature sur le sujet, le SICP, et j'ai été surpris que c'était plus facile que j'imaginais.

Ma reconstruction du programme en Pascal: https://github.com/jaypeeds/nanolisp

Petite capture d'écran du résultat:
Code
jaypee@MacMini2018JP nanolisp % ./NanoLisp
NANO-LISP - (C)JM HUSSON (1985), JPDS (2021)
     (LOAD 'Exemples/test-fact-rec.nlsp)
  FACT
      NIL
     T
     (FACT 10)
3628800
     (SETQ PI 3.1415926535)            
3.1415926535
     (DE perimetre-du-cercle(RAYON) (* 2 PI RAYON))
perimetre-du-cercle
     (perimetre-du-cercle 5.0)
  3.1415926535000001E+001
     (QUIT)
NIL

Le fichier chargé contient une définition de fonction factorielle récursive que j'appelle dans la console:

(DE FACT(N) (COND ((EQ N 0) 1) (T (* N (FACT (- N 1))))))

Ce n'est pas un outil industriel, il a plein de défaut, mais c'est juste cool et fun ! et c'est déjà beaucoup !
@+JP

Ce message a été modifié par Jaypee - 8 Jul 2021, 10:36.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 17th May 2024 - 22:31