PicoLisp

PicoLisp
PicoLisp Logo.svg
Paradigm Funktionell , procedurell , objektorienterad , deklarativ , reflekterande , meta
Familj Läspa
Designad av Alexander Burger
Dök först upp 1988 ; 35 år sedan ( 1988 )
Stabil frisättning
23.2 / 8 februari 2023 ; för 29 dagar sedan ( 2023-02-08 )
Maskinskrivningsdisciplin anka , dynamisk , stark
Implementeringsspråk LLVM , PicoLisp
OS POSIX
Licens MIT
Filnamnstillägg .l
Hemsida picolisp .com
Dialekter
Ersatz PicoLisp, miniPicoLisp

PicoLisp är ett programmeringsspråk, en dialekt av språket Lisp . Det körs på operativsystem inklusive Linux och andra som är kompatibla med Portable Operating System Interface ( POSIX ) . Dess mest framträdande egenskaper är enkelhet och minimalism . Den bygger på en intern datatyp : en cell. På språknivå kan en programmerare använda tre olika datatyper (siffror, symboler och listor) som representeras av celler och differentieras av bitar i slutet av cellen. Det är gratis och öppen källkod som släpps under en MIT-licens (X11).

Funktioner

Funktioner kan acceptera godtyckliga typer och antal argument. Makron behövs endast i sällsynta fall och implementeras med hjälp av citatfunktionen. PicoLisp inkluderar inte Lisps lambdafunktion . Detta beror på att citatfunktionen ändras för att returnera alla dess argument outvärderade, inte bara den förstas bil .

En speciell funktion är den inneboende funktionen för att skapa, läsa, uppdatera och ta bort ( CRUD). Beständiga symboler är förstklassiga medborgare (objekt), de laddas automatiskt från databasfiler när de öppnas och skrivs tillbaka när de ändras. Ansökningar skrivs med hjälp av en klasshierarki av enheter och relationer .

Andra funktioner inkluderar: Prolog- motor, databasmotor och databasfrågor, distribuerade databaser, inlining av C- språkfunktioner och inbyggda C-funktionsanrop, underordnad processhantering, interprocesskommunikation , webbläsargrafiskt användargränssnitt (GUI) och internationalisering och lokalisering .

Historia

På 1980-talet började PicoLisp utvecklas på Macintosh och användes i kommersiella tillämpningar [ vilken? ] utveckling sedan dess. [ citat behövs ] Designen av PicoLisp är mest lik den första versionen av MacLisp, Interlisp och främst Portable Standard Lisp. Den portades till DOS och SCO Unix . Sedan 1993 har det använts främst på Linux. I mitten av 1990-talet tillkom databasfunktioner.

De första versionerna skrevs i en blandning av C och assemblerspråk . 1999 gjordes en första omskrivning från grunden, helt i C. 2002 släpptes den versionen under en GNU General Public License (GNU GPL). 2010 ändrades den till en MIT/X11-licens.

2009 släpptes 64-bitarsversionen , ytterligare en omskrivning, denna gång skriven i generisk sammansättning, som i sin tur är implementerad i PicoLisp. Denna version lägger till stöd för coroutines .

I december 2010 släpptes en Java- version med namnet Ersatz PicoLisp .

I september 2014 tillkännagav Burger PilMCU-projektet på PicoLisps utvecklingslistserv , ett försök med George Orais att implementera PicoLisp i hårdvara direkt.

I juli 2015 tillkännagav Burger PilOS - PicoLisp Operating System, en minimal prototyp baserad på modifieringen av PilMCU riktad mot inbäddade applikationer. Den körs på standard x86-64 PC-hårdvara, direkt från BIOS och inkluderar alla funktioner i 64-bitars PicoLisp (minus inbyggda funktionsanrop, eftersom det inte finns någon annan inbyggd miljö som C-standardbiblioteket); i princip fungerar det som ett eget operativsystem.

Sommaren 2016 startades utvecklingen av PilBox ("PicoLisp Box") – en generisk Android- app som gör det möjligt att skriva appar i ren PicoLisp. Det utvecklas och underhålls fortfarande.

2021 återimplementerades PicoLisp i LLVM och släpptes som pil21 . Källspråket som kompileras till LLVM-IR är också i PicoLisp-syntax.

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2 (övergiven)
  Maclisp
  Interlisp
  MDL
  Lisp Machine Lisp
 Schema R5RS R6RS R7RS liten
  NIL
  ZIL (Zork Implementation Language)
  Franz Lisp
 Vanlig Lisp ANSI standard
  Le Lisp
  MIT Scheme
  T
  Chez Scheme
  Emacs Lisp
  AutoLISP
  PicoLisp
  Gambit
  EuLisp
  ISLISP
  OpenLisp
 PLT-schema  Racket
  GNU Guile
  Visual LISP
  Clojure
  Arc
  LFE
  Hy

externa länkar