Paul Graham kündigte eine neue Programmiersprache Bel an

Die Bel-Sprache ist in der Bel-Sprache geschrieben.

Paul Graham kündigte eine neue Programmiersprache Bel an
1960 beschrieb John McCarthy Lisp, eine neue Art von Programmiersprache. Ich sage „neuer Typ“, weil Lisp nicht nur eine neue Sprache war, sondern eine neue Art, Sprachen zu beschreiben.

Um Lisp zu definieren, begann er mit einer kleinen Reihe von Aussagen, einer Art Axiome, die er dann nutzte, um einen Interpreter für die Sprache selbst zu schreiben.

Ziel war es nicht, eine Programmiersprache im üblichen Sinne zu beschreiben – eine Sprache, die einem Computer sagt, was er tun soll. In seiner Arbeit von 1960 wurde Lisp als formales Rechenmodell ähnlich der Turingmaschine verstanden. McCarthy dachte nicht darüber nach, es auf Computern zu verwenden, bis Steve Russell, sein Doktorand, es vorschlug.

Im Jahr 1960 verfügte Lisp nicht über die üblichen Programmiersprachenfunktionen. Beispielsweise gab es keine Zahlen, Fehler oder I/O. Daher mussten Leute, die Lisp als Grundlage für die Programmiersprachen von Computern verwendeten, diese Funktionen selbst hinzufügen. Und sie taten dies, indem sie den axiomatischen Ansatz aufgaben.

Somit verlief die Entwicklung von Lisp in zwei – und scheinbar völlig unabhängigen – Phasen: einer formalen Phase, die in einer Arbeit aus dem Jahr 1960 eingeführt wurde, und einer Implementierungsphase, in der die Sprache angepasst und für die Ausführung auf Computern erweitert wurde. Die Hauptarbeit, gemessen an der Anzahl der umgesetzten Möglichkeiten, fand in der Umsetzungsphase statt. Das 1960 in Common Lisp übersetzte Lisp enthält nur 53 Zeilen. Es wird nur das getan, was zur Interpretation der Ausdrücke erforderlich ist. Alles andere wurde in der Implementierungsphase hinzugefügt.

Meine Hypothese ist, dass Lisp trotz seiner schwierigen Geschichte von der Tatsache profitierte, dass seine Entwicklung in zwei Phasen erfolgte; dass die ursprüngliche Übung, eine Sprache zu definieren, indem ihr Interpreter darin geschrieben wurde, Lisp seine besten Qualitäten verlieh. Und wenn ja, warum nicht noch weiter gehen?

Rufen Sie uns an! ist ein Versuch, die Frage zu beantworten: Was wäre, wenn der Übergang von der formellen Phase zur Ausführungsphase nicht frühzeitig, sondern so spät wie möglich erfolgen würde? Wenn Sie den axiomatischen Ansatz weiterhin verwenden, bis Sie so etwas wie eine vollständige Programmiersprache haben, welche Axiome benötigen Sie dann und wie wird die resultierende Sprache aussehen?

Ich möchte klarstellen, was Bel ist und was nicht. Obwohl es viel mehr Funktionen hat als McCarthys Lisp aus dem Jahr 1960, ist Bel immer noch ein Produkt in seiner formalen Phase. Wie Lisp, das 1960 in einem Artikel beschrieben wurde, ist es keine Sprache, die man zum Programmieren verwenden kann. Hauptsächlich, weil es, wie bei McCarthys Lisp, keinen Wert auf Effizienz legt. Wenn ich Bel etwas hinzufüge, beschreibe ich die Bedeutung des Zusatzes, ohne zu versuchen, eine effiziente Implementierung bereitzustellen.

Wofür? Warum die formelle Phase verlängern? Eine Antwort besteht darin, herauszufinden, wohin uns der axiomatische Ansatz führen kann, was an sich schon eine interessante Übung ist. Wenn Computer so leistungsfähig wären, wie wir es uns wünschen, wie würden Sprachen aussehen?

Aber ich glaube auch, dass es möglich ist, durch das Hinzufügen von Einschränkungen eine effiziente Bel-basierte Implementierung zu schreiben. Wenn Sie eine Sprache wünschen, die über Ausdruckskraft, Klarheit und Effizienz verfügt, könnte es sich lohnen, mit Ausdruckskraft und Klarheit zu beginnen und dann Einschränkungen hinzuzufügen, anstatt in die entgegengesetzte Richtung zu gehen.

Wenn Sie also versuchen möchten, eine auf Bel basierende Implementierung zu schreiben, fahren Sie fort. Ich werde einer der ersten Benutzer sein.

Letztendlich habe ich einige Dinge aus früheren Dialekten reproduziert. Entweder haben ihre Designer es richtig gemacht, oder sie sind von zuvor verwendeten Dialekten beeinflusst, ich sehe keine richtige Antwort – die Zeit wird es zeigen. Ich habe auch versucht, nicht zu weit von den Lisp-Konventionen abzuweichen. Wenn Sie also eine Abkehr von den Lisp-Konventionen beobachten, kann es dafür einen Grund geben.

Weitere Beschreibung der Sprache hier.

Danke für die Übersetzung: Denis Mitropolsky

PS

Source: habr.com

Kommentar hinzufügen