PicoLisp

Apprendre encore plus Cet article a plusieurs problèmes. Aidez -nous à l’améliorer ou discutez de ces problèmes sur la page de discussion . (Learn how and when to remove these template messages)
A major contributor to this article appears to have a close connection with its subject. It may require cleanup to comply with Wikipedia’s content policies, particularly neutral point of view. Please discuss further on the talk page. (July 2018) (Learn how and when to remove this template message)
Learn more This article relies too much on references to primary sources. Please improve this by adding secondary or tertiary sources. ( juin 2015 ) (Découvrez comment et quand supprimer ce modèle de message)

(Découvrez comment et quand supprimer ce modèle de message)

PicoLisp est un langage de programmation, un dialecte du langage Lisp . Il fonctionne sur des systèmes d’exploitation tels que Linux et d’autres compatibles avec l’interface de système d’exploitation portable ( POSIX ). Ses principales caractéristiques sont la simplicité et le minimalisme . Il est construit sur un type de données interne : une cellule. Au niveau du langage, un programmeur peut utiliser trois types de données différents (nombres, symboles et listes) représentés par des cellules et différenciés par des bits à la fin de la cellule. [2] Il s’agit d’un logiciel gratuit et open-source publié sous une licence MIT(X11).

PicoLisp
Paradigmes Fonctionnel , procédural , orienté objet , déclaratif , réflexif , méta
Famille Zézayer
Conçu par Alexandre Burger
Première apparition 1988 ; il y a 34 ans ( 1988 )
Version stable 22.3 / 21 mars 2022 ; il y a 56 jours ( 2022-03-21 )
Discipline de frappe canard , dynamique , fort
Langage d’implémentation LLVM , PicoLisp
Plateforme IA-32 , x86-64 , Arm64
SE POSIX
Licence MIT
Extensions de nom de fichier .l
Site Internet picolisp.com _
Dialectes
Ersatz PicoLisp, miniPicoLisp [1]

Caractéristiques

Les fonctions peuvent accepter des types et des nombres arbitraires d’arguments. Les macros ne sont nécessaires que dans de rares cas et sont implémentées à l’aide de la fonction quote. PicoLisp n’inclut pas la fonction lambda de Lisp . En effet, la fonction quote est modifiée pour renvoyer tous ses arguments non évalués, pas seulement carle premier. [3]

Une caractéristique spéciale est le fonctionnement intrinsèque de création, lecture, mise à jour et suppression (CRUD). Les symboles persistants sont des citoyens de première classe (objets), ils sont automatiquement chargés à partir des fichiers de base de données lorsqu’ils sont consultés et réécrits lorsqu’ils sont modifiés. Les applications sont écrites à l’aide d’une hiérarchie de classes d’ entités et de relations .

Les autres fonctionnalités incluent : le moteur Prolog , le moteur de base de données et les requêtes de base de données, les bases de données distribuées, l’intégration des fonctions du langage C et des appels de fonction C natifs, la gestion des processus enfants, la Communication interprocessus , l’interface utilisateur graphique du navigateur (GUI) et l’internationalisation et la localisation .

Histoire

Dans les années 1980, PicoLisp a commencé le développement sur le Macintosh , et a été utilisé dans une application commerciale [ laquelle ? ] développement depuis lors. [ citation nécessaire ] La conception de PicoLisp est la plus similaire à la première version de MacLisp, Interlisp et principalement Portable Standard Lisp. [4] Il a été porté sur DOS et SCO Unix . Depuis 1993, il était utilisé principalement sous Linux. Au milieu des années 1990, des fonctions de base de données ont été ajoutées.

Les premières versions ont été écrites dans un mélange de langage C et assembleur . En 1999, une première réécriture à partir de zéro a été effectuée, entièrement en C. En 2002, cette version a été publiée sous une licence publique générale GNU (GNU GPL). En 2010, il est passé à une licence MIT/X11.

En 2009, la version 64 bits est sortie, une autre réécriture, cette fois écrite en assembleur générique, qui à son tour est implémentée dans PicoLisp. Cette version ajoute la prise en charge des coroutines .

En décembre 2010, une version Java nommée Ersatz PicoLisp est sortie. [5]

En septembre 2014, Burger a annoncé le projet PilMCU sur le listserv de développement PicoLisp , un effort avec George Orais pour implémenter directement PicoLisp dans le matériel. [6]

En juillet 2015, Burger a annoncé PilOS – The PicoLisp Operating System, un prototype minimal basé sur la modification de PilMCU ciblant les applications embarquées. [7] Il fonctionne sur du matériel PC x86-64 standard, directement à partir du BIOS et inclut toutes les fonctionnalités de PicoLisp 64 bits (moins les appels de fonctions natives, car il n’y a pas d’autre environnement natif tel que la bibliothèque standard C) ; en principe, il fonctionne comme son propre système d’exploitation. [8]

À l’été 2016, le développement de PilBox (“PicoLisp Box”) – une application Android générique permettant d’écrire des applications en pur PicoLisp – a été lancé. Il est toujours en cours de développement et de maintenance.

Chronologie des dialectes Lisp
  • v
  • t
  • e
1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2 (abandonné)
Maclisp
Interlisp
LMD
Lisp Machine Lisp
Schème R5RS R6RS R7RS petit
NÉANT
ZIL (Langage d’implémentation de Zork)
Franz Lisp
Lisp commun
Le Lisp
Programme MIT
J
Chez Scheme
Emacs LispComment
AutoLISP
PicoLisp
EuLisp
ILISISP
OpenLisp
Régime PLT Raquette
Ruse GNU
LISP visuel
Clojure
Arc
LFE
Hy

Références

  1. ^ “Téléchargement PicoLisp” . Laboratoire de logiciels . Récupéré le 18 novembre 2018 .
  2. ^ Burger, Alexandre. “Structures internes” . Laboratoire de logiciels . Récupéré le 18 novembre 2018 .
  3. ^ “Même les petits détails font la différence !” .
  4. ^ https://www.mail-archive.com/picolisp@software-lab.de/msg04884.html
  5. ^ Burger, Alexandre (8 mai 2013). “Ersatz PicoLisp” . Laboratoire de logiciels .
  6. ^ “Annoncer : PicoLisp dans le matériel” .
  7. ^ https://www.mail-archive.com/picolisp@software-lab.de/msg05364.html
  8. ^ https://picolisp.com/wiki/?PilOS

Liens externes

  • Site officiel
  • Picolisp sur le wiki C2
  • Un blog sur tout l’écosystème de Picolisp
Ersatz PicoLispFranz Lisp LispLearn how andLispPicoLisp
Comments (0)
Add Comment