Seite 1 von 1

Wie entsteht eine Programmiersprache ?

Verfasst: Sonntag 18. Mai 2008, 17:45
von Oscar
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

Verfasst: Sonntag 18. Mai 2008, 18:08
von lunar
Der Python Interpreter ist in C implementiert.

Re: Wie entsteht eine Programmiersprache ?

Verfasst: Sonntag 18. Mai 2008, 18:10
von Leonidas
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.

Verfasst: Sonntag 18. Mai 2008, 18:10
von sma
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

Verfasst: Montag 19. Mai 2008, 08:52
von gekko
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

Verfasst: Montag 19. Mai 2008, 09:29
von Imperator
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:

Verfasst: Montag 19. Mai 2008, 10:11
von jens
btw. [wiki]PyPy[/wiki]

Verfasst: Montag 19. Mai 2008, 21:27
von Oscar
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

Verfasst: Montag 19. Mai 2008, 22:39
von Leonidas
Abstammungs-Graph einer Menge Programmiersprachen.

Verfasst: Sonntag 25. Mai 2008, 08:52
von sma
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