wie eine Programmiersprache entwickeln?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

wie eine Programmiersprache entwickeln?

Beitrag von startx » 27.06.2008 17:29:35

hi.

ich suche nach einem guten Tutorial wie man eine Computersprache von Grund auf entwickelt, also mit eigener Syntax, etc. Es geht mir ums verstehen, nicht darum eine Sprache zu entwickeln die irgendwas neues tolles kann.

Mich interessiert beides interpretierte Scriptsprache also auch wie man einen simplen Compiler konstruiert.

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: wie eine Programmiersprache entwickeln?

Beitrag von neuss » 27.06.2008 18:18:40

Hallo,
startx hat geschrieben:Es geht mir ums verstehen, nicht darum eine Sprache zu entwickeln die irgendwas neues tolles kann.
So ganz verstehe ich deine Frage nicht. Eine Programmiersprache ist doch in in erster Linie dazu da, eine Aufgabe leichter und verständlicher lösen zu können.
startx hat geschrieben:Mich interessiert beides interpretierte Scriptsprache also auch wie man einen simplen Compiler konstruiert.
Sprache und Interpreter / Compiler sind verschiedene paar Schuhe, auch wenn die Sprache in der Praxis oftmals dem Compiler, also der Hardware Tribut zollen muss.

Was interessiert dich denn wirklich, die Logik einer Sprache oder deren praktische Umsetzung auf bestehende Hardware?

gruss neuss
stell dir vor, es geht, und keiner kriegt es hin.


Benutzeravatar
bse
Beiträge: 468
Registriert: 19.03.2006 19:58:00
Lizenz eigener Beiträge: MIT Lizenz

Re: wie eine Programmiersprache entwickeln?

Beitrag von bse » 27.06.2008 19:24:10

Oder google mal nach Übersetzerbau und Compilerbau, da gibts einige Vorlesungsskripte dazu.

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: wie eine Programmiersprache entwickeln?

Beitrag von novalix » 27.06.2008 20:23:58

Hallo,

zur logischen Struktur und Aufbau von Programmen/Programmiersprachen wird der MIT-Insasse mit sowas hier behandelt. Auch heute noch.
Falls Du es noch nicht kennst, zieh Dir die Videos per torrent und danach ins Gemüt.
Grosser Geekspass!

Groetjes, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
Sid Burn
Beiträge: 47
Registriert: 16.11.2006 15:18:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /universe/earth/europe/germany/nrw/essen
Kontaktdaten:

Re: wie eine Programmiersprache entwickeln?

Beitrag von Sid Burn » 27.06.2008 22:53:14

Mich interessiert beides interpretierte Scriptsprache also auch wie man einen simplen Compiler konstruiert.
Das erste was du schonmal lernen kannst ist es das es sowas wie eine "Skriptsprache" oder "Kompilierte" Sprache nicht gibt. Eine Sprache besteht erstmal nur aus Syntax Regeln. Sprich deiner Grammatik. Wie du diese Sprache nun dazu bewegst das es das tut was es tun soll ist ein anderer Hut.

Du kannst ein Compiler bauen oder einen Interpreter. Und selbst da sind die unterschiede eigentlich nicht so riesieg. Du must erstmal einen Parser haben bei beiden der deine Sprache "Lesen" kann. Ein Compiler wandelt dann deine Sprache in eine andere Sprache um. Wie die andere Sprache nun ausschaut ist auch egal, Sprich ob es nun Assembler ist oder spezielle Opcodes die von einem Interpreter (in diesem Fall sagt man oft VM (=Virtuelle Maschiene)) Interpretiert wird spielt dann keine Rolle.

Eine Programmiersprache kann beliebig Kompiliert oder Interpretiert werden. Ist halt einfach eine Sache welche Implementierungen du baust. Du kannst auch einen Interpreter bauen der C Interpretiert (gibt es schon).

Die Unterteilung in "Programmiersprache", "Kompilierte Sprache" oder "Interpretierte Sprache (Skriptsprache)" ist also total Schwachsinnig da die Sprache nicht an Ihre Implementierung gebunden ist.

Ansonsten musst du dich da mit Compilern, Parsern auseinander setzen. Die "Bibel" dazu soll wohl angeblich das sogenannte "Dragon" Book sein. http://en.wikipedia.org/wiki/Compilers: ... _and_Tools

Meist sollte das wohl mit C und Tools wie Yacc, Bison etc. nutzen. Allerdiengs bin ich da auch kein experte auf dem Gebiet.

Wenn du etwas Moderners haben willst dann schau doch mal in der Entwicklung von Parrot vorbei. Wenn du Parrot nicht kennst: Es ist eine allgemeine neue VM die primär für Perl 6 gedacht ist. Allerdiengs kann Parrot nicht direkt Perl 6 ausführen sondern nur "Zwischencode" (Opcodes, Bytecodes). Parrot ist darauf ausgelegt das es später alles beliebiege ausführen kann. Nunja eigentlich versteht es ja nur die Zwischencodes du musst halt nur Compiler Schreiben die die eine oder andere Sprache eben in einem Zwischencode umwandelt der von Parrot verstanden wird. Aber die Entwicklung um Parrot ist verdamt groß.

Und Parrot selber ist mitlerweile schon zu einem Entwicklungskit herangewachsen mit dennen du deine eigene Sprachen realisieren kannst. Vielleicht findest du da ja noch gute Infos und evtl. kannst da gleich Praktisch ans Werk gehen. ;)

Antworten