Wie entsteht eine Programmiersprache ?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Oscar
User
Beiträge: 22
Registriert: Dienstag 25. September 2007, 17:57

Hi,
das habe ich mich schon häufig gefragt. Also Herr van Rossum und seine Mitstreiter
gestalten den Python-Interpreter, damit ich Python-Code schreiben kann der dann vom
Interpreter interpretiert wird. Nur, wie schreiben die den Python-Interpreter; mit einem
Programm, mit einer Programmiersprache und wenn ja mit welcher....?
Gruß Oscar
lunar

Der Python Interpreter ist in C implementiert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Oscar hat geschrieben:Nur, wie schreiben die den Python-Interpreter; mit einem
Programm, mit einer Programmiersprache und wenn ja mit welcher....?
Ja, sie nutzen ein Programm, es heißt Emacs und ist ein Texteditor.

Der CPython-Interpreter ist in C geschrieben, Jython ist in Java geschrieben, IronPython ist in C# geschrieben, Vyper ist in OCaml geschrieben, PyPy ist in RPython geschrieben, etc. etc.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Das "wie" ist eine sehr gute Frage. Ich denke, jemand ist mit den existierenden Sprachen nicht zufrieden und/oder möchte ein neues Konzept ausprobieren und sucht nach neuen Ausdrucksformen, also letztlich nach einer neuen Syntax mit neuer Semantik.

Der Standard-Python-Interpreter ist in der Sprache C geschrieben.

Die Sprache Python ist durch ABC beeinflusst, einer Sprache, mit der sich van Rossum vor Python beschäftigt hat. ABC war motiviert durch die Unzufriedenheit mit BASIC als Lern und Lehrsprache. BASIC wiederum war der Versuch, ein Sprache für Anfänger zu bauen, die einfacher als FORTRAN war. Die Objektorientierung von Python stammt von Smalltalk ab und diese Sprache vereinigt Ideen von Lisp, Logo und Simula-67. Logo ist ein Lisp-Dialekt und wurde ebenfalls als Lehrsprache für Kinder entwickelt (wie Smalltalk übrigens auch). Simula hat sich aus Algol entwickelt.

C wird traditionell kompiliert, also in Maschinencode übersetzt. C-Compiler sind in der Regel in C geschrieben. Der allererste Compiler war vielleicht direkt per Hand in Maschinensprache geschrieben, vielleicht auch in B oder BCPL, zwei Sprachen, die C voran gingen. BCPL war eine Antwort auf CPL, welches wiederum von Algol beeinflusst war, welches die erste formal definierte Programmiersprache war, in der die Erfahrungen von Fortran und Cobol (weniger Lisp) zusammenliefen.

Fortran und Lisp sind die ältesten höheren Programmsprachen, je nach Quellenangabe zwischen 1954 und 1959 erfunden. Cobol kam dann 1959 dazu, Algol-58 und Algol-60 in den jeweiligen Jahren. Basic 1964, Logo und Simula dann 1967, Smalltalk wurde von 1972 bis 1981 entwickelt, Python erschien zum ersten Mal 1991.

Man könnte Python auch in Python schreiben, etwas, dass das PyPy-Projekt versucht. Aus irgendeinem Grund ist es das Ziel jeder ernstzunehmenden Sprache, dass sie in sich selbst beschreibbar ist. Oder man könnte Lisp benutzen, welches man dann mit einem in Lisp geschriebenen Lisp-Compiler übersetzen könnte... Lisp hat jedenfalls diese Tradition mit einem metazirkulären Interpreter 1958 begonnen und böse Zungen behaupten, der einzige Zweck von Sprachen wie ML ist es, das man darin Compiler für ML schreiben kann.

Stefan
gekko
User
Beiträge: 2
Registriert: Freitag 16. Mai 2008, 10:10

Hallo!

Programmiersprachen können auch entstehen, weil jemand z.B. Teleskope steuern will ;)

Weil ich Teleskope, Reverse Polish Notation und Stacks gern hab möchte ich als Beispiel Forth verlinken:

http://www.forth.org/whatis.html
http://de.wikipedia.org/wiki/Forth_%28Informatik%29
http://www.zock.com/64er/8407/0011.html
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

sma hat geschrieben:Das "wie" ist eine sehr gute Frage. Ich denke, jemand ist mit den existierenden Sprachen nicht zufrieden und/oder möchte ein neues Konzept ausprobieren und sucht nach neuen Ausdrucksformen, also letztlich nach einer neuen Syntax mit neuer Semantik.

Der Standard-Python-Interpreter ist in der Sprache C geschrieben.

Die Sprache Python ist durch ABC beeinflusst, einer Sprache, mit der sich van Rossum vor Python beschäftigt hat. ABC war motiviert durch die Unzufriedenheit mit BASIC als Lern und Lehrsprache. BASIC wiederum war der Versuch, ein Sprache für Anfänger zu bauen, die einfacher als FORTRAN war. Die Objektorientierung von Python stammt von Smalltalk ab und diese Sprache vereinigt Ideen von Lisp, Logo und Simula-67. Logo ist ein Lisp-Dialekt und wurde ebenfalls als Lehrsprache für Kinder entwickelt (wie Smalltalk übrigens auch). Simula hat sich aus Algol entwickelt.

C wird traditionell kompiliert, also in Maschinencode übersetzt. C-Compiler sind in der Regel in C geschrieben. Der allererste Compiler war vielleicht direkt per Hand in Maschinensprache geschrieben, vielleicht auch in B oder BCPL, zwei Sprachen, die C voran gingen. BCPL war eine Antwort auf CPL, welches wiederum von Algol beeinflusst war, welches die erste formal definierte Programmiersprache war, in der die Erfahrungen von Fortran und Cobol (weniger Lisp) zusammenliefen.

Fortran und Lisp sind die ältesten höheren Programmsprachen, je nach Quellenangabe zwischen 1954 und 1959 erfunden. Cobol kam dann 1959 dazu, Algol-58 und Algol-60 in den jeweiligen Jahren. Basic 1964, Logo und Simula dann 1967, Smalltalk wurde von 1972 bis 1981 entwickelt, Python erschien zum ersten Mal 1991.

Man könnte Python auch in Python schreiben, etwas, dass das PyPy-Projekt versucht. Aus irgendeinem Grund ist es das Ziel jeder ernstzunehmenden Sprache, dass sie in sich selbst beschreibbar ist. Oder man könnte Lisp benutzen, welches man dann mit einem in Lisp geschriebenen Lisp-Compiler übersetzen könnte... Lisp hat jedenfalls diese Tradition mit einem metazirkulären Interpreter 1958 begonnen und böse Zungen behaupten, der einzige Zweck von Sprachen wie ML ist es, das man darin Compiler für ML schreiben kann.

Stefan


:shock: :shock:
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

btw. [wiki]PyPy[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Oscar
User
Beiträge: 22
Registriert: Dienstag 25. September 2007, 17:57

HI, ich meinte das in der Tat ganz allgemein und nicht auf Python bezogen.
Python sollte nur ein Beispiel sein. Aber das geht aus dem Ausgangsthread
nicht wirklich hervor und insofern habe ich das Ziel, eine Frage sauber zu
stellen, mal wieder nicht erreicht :( .
Wie dem auch sei, insbesondere sma hat mir gezeigt, das ich mich in die
Untiefen der Programmiergeschichte begeben sollte. Dank an alle.
Gruß Oscar
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Abstammungs-Graph einer Menge Programmiersprachen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Hatte übrigens gestern gerade in dem OOPSLA-2007-Podcast mit der Keynote von McCarthy gelernt, dass er Fortran kannte und als Quelle angibt. Die Sprache ist definitiv älter als Lisp. Logo ist dafür im Gegensatz zu der Grafik, die Leonidas gepostet hat, definitiv eine Quelle für Smalltalk, da Kay ein Bewunderer dieser Arbeit war.

Stefan
Antworten