Accueil technologie ZÉZAYER

ZÉZAYER



Contexte historique

Au milieu des années 1950, la plupart des ordinateurs traitaient des données numériques, y compris la linguistique, la psychologie et les mathématiques. Certaines personnes ont commencé à développer l'intelligence artificielle. L'intérêt. Je pense qu'il est nécessaire de répondre à un besoin commun pour permettre à l'ordinateur de traiter les données symboliques dans la liste chaînée, et permettre au processus de traitement du langage, de stockage et de récupération d'informations, et de prouver le théorème d'être usiné. IBM a été l'une des premières organisations commerciales à s'intéresser au développement de l'intelligence artificielle.

À l'été 1958, John McCarthy, un pionnier de la recherche sur l'intelligence artificielle du Massachusetts Institute of Technology, a participé aux travaux du département de recherche sur l'information d'IBM pour étudier l'informatique symbolique et les exigences des applications. Cependant, le langage de traitement de table Fortran d'IBM ne prend pas en charge les opérations symboliques telles que la récursivité, les expressions conditionnelles, l'allocation de stockage dynamique et la récupération implicite. Après le retour de John McCarthy au MIT à l'automne 1958, il a formé un projet d'intelligence artificielle avec MarvinMinsky. Développement d'un système logiciel de traitement de table pour réaliser le travail du programme d'adoption de suggestions de McCarthy, puis promotion de la naissance du langage de traitement de table LISP.

Processus de développement

En avril 1960, McCarthy a publié sur la lettre d'information ACM sous le titre "Expressions symboliques des fonctions récursives et méthodes de fonctionnement par les machines, première partie" les paramètres LISP. Selon l'article, l'étudiant de McCarthy, Steve Russell, a implémenté avec succès la première version de LISP avec IBM704 au Computer Computing Center du Massachusetts Institute of Technology.

En 1962, McCarthy et l'équipe d'intelligence artificielle ont amélioré la version LISP1.5 basée sur la compilation de LISP1.

En septembre 1969, StanfordLISP1.6 lancé par LynnQuam et WhitfieldDiffie du laboratoire d'intelligence artificielle de l'Université de Stanford a été largement utilisé dans le système informatique PDP-10 utilisant le système TOPS-10. Cependant, la version StanfordLISP1.6 a été progressivement abandonnée après le succès de la mise à jour LISP1.5 du MIT Smart Project dans l'InterLisp lancé par MACLISP et BBN Technology.

De la fin des années 1960 au début des années 1980, diverses versions mises à jour de LISP ont émergé, notamment FranzLisp de l'Université de Californie à Berkeley, XLISP, le prédécesseur d'AutoLISP fonctionnant dans AutoCAD, StandardLisp et PortableStandardLisp développé par l'Université de l'Utah, et spécialisé Il appartient à ZetaLisp fonctionnant sur des machines Lisp, LeLisp de l'Institut national français de l'information et de l'automatisation, et Scheme développé par Gerald Sussman et GuySteele du laboratoire d'intelligence artificielle du MIT.

En 1984, CommonLisp, qui a été amélioré à partir de MacLisp, a intégré toutes les versions, multiplateforme et était considéré comme le standard de facto, est né. En 1994, l'American National Standards Institute (ANSI) a normalisé le langage CommonLisp.

Depuis l'émergence du CommonLisp stable, diverses organisations ont développé le Lisp de suivi en fonction de leurs besoins, dont EuLisp des utilisateurs européens en 1990, Clojure fonctionnant sur la machine virtuelle Java, et la création sous l'influence de Maclisp. EmacsLisp, le CMUCL gratuit et open source de l'Université Carnegie Mellon, et IsLisp, Racket, ACL2, etc. fleurissent.

Depuis 2000, une communauté libre et open source soutenue par des partageurs LISP s'est progressivement formée et s'est engagée dans le suivi du développement de LISP.

En octobre 2002, la première conférence internationale LISP a eu lieu à San Francisco, aux États-Unis, et la conférence LISP a eu lieu de temps à autre dans le monde, y compris la conférence de 2014 sur le thème du mobile à l'Université de Montréal, Canada.

Caractéristiques linguistiques

LISP est un langage de programmation fonctionnel. Toutes les opérations peuvent être implémentées de manière à ce que les fonctions agissent sur les paramètres.

LISP n'a pas d'instructions et de variables d'affectation communes dans les programmes en langage impératif, et le processus répété peut être représenté par des appels de fonction récursifs, sans qu'il soit nécessaire d'utiliser le mode boucle.

LISP est un ancien langage fonctionnel, un typage faible, une inférence dynamique, et son code lui-même est une variété de listes. Chaque élément du tableau peut stocker tout type de données comme des nombres, des fonctions, des symboles, ou un sous-tableau, etc., lors de l'encodage, vous pouvez intervenir à tout moment pour mettre à jour la liste.

Il n'y a que 7 opérateurs dans le noyau de LISP : quote, atom, eq, car, cdr, cons, cond. Les trois premiers, quote, atom et eq, sont utilisés pour l'inférence de symboles ; car, cdr et cons manipulent la table ; cond est responsable du jugement de branche. Cette définition concise est très proche du langage fonctionnel pur du prototype de machine de Turing, qui est complètement inégalé par les langages modernes.

En tant que type faible, l'inconvénient relatif de LISP est sa faible efficacité de fonctionnement. La lacune de la définition originale est concise, ce qui la rend difficile pour les projets de développement à grande échelle. De bas en haut, de la requête de table bidimensionnelle à l'orienté objet, les utilisateurs doivent intégrer plus de fonctions pour y parvenir, ce qui entraîne la dérivation de nombreux dialectes de LISP.

Composition linguistique

Type de données

LISP n'a que deux structures de données, atom (atom) et table b>(list). Un atome est un symbole ou une valeur littérale d'un nombre sous la forme d'un identifiant, et une table est une séquence de zéro ou plusieurs expressions. Fondamentalement, le programme LISP n'a pas besoin d'utiliser les opérations d'insertion et de suppression nécessaires au traitement général des tables.

Structure de phrase

La syntaxe de LISP est concise et typique. La forme du code de programme et des données sont exactement les mêmes, et le tableau est délimité par des parenthèses. Par exemple, le tableau :

(A B C D)

Lorsqu'il est interprété par des données, il s'agit d'un tableau à 4 éléments. Interprétée par code, elle sera nommée A La fonction agit sur 3 paramètres B, C et D.

Lors de la spécification de la structure du tableau , mettez les éléments du tableau entre parenthèses. L'élément du tableau simple n'est composé que d'atomes :

( A B C D)

La structure de table imbriquée est également exprimée entre parenthèses, par exemple, table :

(A(BC)D(E(FG) ))

Composé de 4 éléments.

Le premier élément est l'atome A, le second est la sous-liste (BC), le troisième est l'atome D et le quatrième est la sous-liste (E(FG)), son second L'élément est une table enfant (FG).

Mots clés

LISP est un langage de programmation fonctionnel. Il n'y a pas de paramètres de mots-clés ou de mots réservés, qui peuvent être définis par les utilisateurs.

Exécution du langage

La syntaxe LISP peut être incorporée en exécutant le programme HelloWorld. Ce programme est exécuté par XLISP-STAT2.1, compilateur version 3.45Beta.

  (DEFUN BONJOUR() "BONJOUR Monde")

Normes linguistiques

Le langage LISP dérivé a été certifié dans les normes suivantes :

ANSIX3.226-1994 -1994, le langage de programmation CommonLisp (CommonLispProgramminglanguage)

IEEEstandard1178 –1990(R1995) En 1995, le langage de programmation Scheme (SchemeProgramminglanguage)

ISO/IEC13816:1997 -1997, le langage de programmation ISLISP (ISLISPProgramminglanguage) a été retiré

ISO/IEC13816:2007 -2007, ILISP (ISLISPlangage de programmation)

Demande de langue

LISP est un pionnier de la programmation fonctionnelle, et ses nombreuses idées novatrices révolutionnaires ont affecté le développement des langages de programmation ultérieurs, et il a complètement monopolisé l'application de l'intelligence artificielle pendant un tiers de siècle. Les facteurs d'inefficacité qui sont apparus dans les premières années de développement ont également été supprimés dans l'amélioration collective, réalisant CommonLisp, Scheme, EmacsLisp et Clojure qui sont largement utilisés dans le développement de logiciels, le commerce électronique et les systèmes financiers.

Cet article provient du réseau, ne représente pas la position de cette station. Veuillez indiquer l'origine de la réimpression
HAUT