LISP - Programmstruktur

LISP-Ausdrücke werden als symbolische Ausdrücke oder S-Ausdrücke bezeichnet. Die S-Ausdrücke bestehen aus drei gültigen Objekten, Atomen, Listen und Zeichenfolgen.

Jeder S-Ausdruck ist ein gültiges Programm.

LISP-Programme werden entweder auf einem ausgeführt interpreter oder als compiled code.

Der Interpreter überprüft den Quellcode in einer wiederholten Schleife, die auch als Read-Evaluate-Print-Schleife (REPL) bezeichnet wird. Es liest den Programmcode, wertet ihn aus und druckt die vom Programm zurückgegebenen Werte.

Ein einfaches Programm

Schreiben wir einen S-Ausdruck, um die Summe der drei Zahlen 7, 9 und 11 zu ermitteln. Dazu können wir an der Interpreter-Eingabeaufforderung eingeben.

(+ 7 9 11)

LISP gibt das Ergebnis zurück -

27

Wenn Sie dasselbe Programm wie ein kompilierter Code ausführen möchten, erstellen Sie eine LISP-Quellcodedatei mit dem Namen myprog.lisp und geben Sie den folgenden Code ein.

(write (+ 7 9 11))

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt LISP diese sofort aus und das zurückgegebene Ergebnis lautet:

27

LISP verwendet die Präfixnotation

Möglicherweise haben Sie bemerkt, dass LISP verwendet prefix notation.

Im obigen Programm fungiert das Symbol + als Funktionsname für den Summierungsprozess der Zahlen.

In der Präfixnotation werden Operatoren vor ihren Operanden geschrieben. Zum Beispiel der Ausdruck,

a * ( b + c ) / d

wird geschrieben als -

(/ (* a (+ b c) ) d)

Nehmen wir ein anderes Beispiel, schreiben wir Code für die Umrechnung der Fahrenheitstemperatur von 60 ° F in die Celsius-Skala -

Der mathematische Ausdruck für diese Konvertierung lautet -

(60 * 9 / 5) + 32

Erstellen Sie eine Quellcodedatei mit dem Namen main.lisp und geben Sie den folgenden Code ein.

(write(+ (* (/ 9 5) 60) 32))

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt LISP diese sofort aus und das zurückgegebene Ergebnis lautet−

140

Evaluierung von LISP-Programmen

Die Bewertung von LISP-Programmen besteht aus zwei Teilen:

  • Übersetzung von Programmtext in Lisp-Objekte durch ein Leseprogramm

  • Implementierung der Semantik der Sprache in Bezug auf diese Objekte durch ein Evaluatorprogramm

Der Bewertungsprozess umfasst die folgenden Schritte:

  • Der Leser übersetzt die Zeichenfolgen in LISP-Objekte oder s-expressions.

  • Der Evaluator definiert die Syntax von Lisp formsdie aus s-Ausdrücken aufgebaut sind. Diese zweite Bewertungsebene definiert eine Syntax, die bestimmt, welches-expressions sind LISP-Formulare.

  • Der Evaluator arbeitet als Funktion, die ein gültiges LISP-Formular als Argument verwendet und einen Wert zurückgibt. Dies ist der Grund, warum wir den LISP-Ausdruck in Klammern setzen, da wir den gesamten Ausdruck / das gesamte Formular als Argumente an den Evaluator senden.

Das 'Hallo Welt'-Programm

Das Erlernen einer neuen Programmiersprache beginnt erst, wenn Sie lernen, die ganze Welt in dieser Sprache zu begrüßen, richtig!

Erstellen Sie daher eine neue Quellcodedatei mit dem Namen main.lisp und geben Sie den folgenden Code ein.

(write-line "Hello World")

(write-line "I am at 'Tutorials Point'! Learning LISP")

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt LISP diese sofort aus und das zurückgegebene Ergebnis lautet:

Hello World

I am at 'Tutorials Point'! Learning LISP