Programmiersprachen

Ich bin ITA und kenne daher selbstverständlich sehr viele Programmiersprachen. Jedoch Frage ich mich. Wie sind diese Sprachen programmiert worden? Es muss ja einen Editor oder ähnliches gegeben haben, in dem man diese Sprachen programmiert hat. Aber in welcher Sprache wurde dieser dann programmiert?^^

Ich stehe vor einem kleinen Rätsel das ich gerne gelöst hätte.

mfG Thomas

Hallo erstmal

Wie sind diese
Sprachen programmiert worden?

Also ganz am Anfang stand die Lochkarte mit dem Binärcode 0 und 1 (Strom an, Strom aus). Ein weiterer Schritt ist die Maschinensprache: http://www.computerbase.de/lexikon/Maschinensprache (man beachte auch das Wort Assembler)
Danach wurde die Abstraktion immer weiterentwickelt: C, Pascal, …

mfg M.L.

Hi!
Wenn es Dir wirklich um den „Anfang von allem“ geht: Die ersten Compiler wurden tatsächlich in Assembler geschrieben, das sind ja praktisch schon die Maschinensprachebefehle, die der Prozessor direkt versteht.
Wenn Dich das „wie“ interessiert: Für eine neue Sprache benötigt man in aller Regel 2 Komponenten. Eine lexikalische Prüfung, die bestimmen kann, ob der gegebene Quellcode überhaupt den Regeln der Sprache entspricht (Syntax) und eine, welche dann die Sprachelemente mit der eigentlichen Funktionalität verknüpft (z.B. eine Zuweisung realisiert, egal, ob die entsprechende Syntax dafür bspw. ‚=‘ oder ‚:=‘ lautet).
Die zwei Standardprogramme dafür waren (sind? Hab’ schon länger keinen Compiler mehr gebastelt…) klassischerweise lex und yacc (deren Implementierungen meines Wissens nach in Standard C erfolgt).
Wenn’s Dich interessiert, auf Wikipedia sind kurze Artikel dazu.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,

Mit Ihr hat es angefangen:
http://de.wikipedia.org/wiki/Ada_Lovelace

Sie gilt als Erfinderin, der Assemblersprache. Der Begriff Mnemonic wurde von Lady Ada eingeführt.
http://de.wikipedia.org/wiki/Maschinensprache#Unters….

Ich persönlich habe mit so einem Ding mal angefangen:
http://oldcomputers.net/kim1.html

Da hat man auf Papier das Programm in Assembler geschrieben. Dann die Opcodes aus der Tabelle herausgesucht und daneben geschrieben und die Offsets für Sprünge hat man auch selbst berechnet.

Die Tabelle sah so aus:
http://archive.6502.org/datasheets/mos_6500_mpu_nov_…
(Seite 9)
Die gabs als gefalteten Karton im Format A5.

Und dann alles über die Hex-Tastatur eingetippt und auf Casette abgespeichert.

MfG Peter(TOO)

Wenn es Dir wirklich um den „Anfang von allem“ geht
Wenn Dich das „wie“ interessiert

Genau die beiden Dinge interessieren mich. Denn als Jugendlicher wächst man auf und sieht hier. Oh schön. Ein Monitor. Und ich kann spiele darauf zocken. Und ich kann Programme benutzen. Aber wie verdamt nochmal ist das denn erschaffen worden?
Ich habe schonmal überlegt das einfach so hinzunehmen. Aber das will ich nicht. Ich will wissen, wie das funktioniert was ich täglich benutze. Ich will wissen, warum ein Programm sich startet wenn ich auf die exe von diesem drücke und was dabei passiert. All diese Fragen beschäftigen mich. Ich weiß selber das ich einigen ITA´s meines Jahrgangs hinterherhinke. Aber wiederum bin ich vor einigen anderen weit im Vordergrund.
Mich würde es ebenfalls interessieren wie eigendlich Linus funktioniert. In meiner Klasse bist du als Vistanutzer unten durch. Habe bei einem Klassenkamerad gesehen, wie er mit Linux arbeitet. Er hat fast ohne unterbrechung irgendwelche Befehle eingetippt. Das hat mich total begeistert. Denn ich mag es, wenn ich Sachen eintippe, und genau weis was ich mache aber andere gucken mich an und fragen sich was ich da mache.

mfG Thomas

Hallo Thomas,

am Anfang habe ich auch, wie Peter schon beschrieben hat, selbst Assembler/Compiler gespielt und die Ergebnisse auf einem Fernschreiber in Lochstreifen gestanzt.

Für die weitere Entwicklung gibt es dann 2 Möglichkeiten:

  1. Cross-Compiling: man entwickelt die Sprachwerkzeuge z.B. für Pascal in einer vorhandenen Sprache, z.B. C. Das ist schnell und bequem, aber die Pascal-Entwicklung bleibt dann immer abhängig von C.

  2. Bootstrapping = sich selber an den Haaren aus dem Sumpf ziehen = Münchhausen: ab einem bestimmten Punkt kann man für die weitere Entwicklung die Sprache selbst verwenden. D.h. man erstellt in Assembler oder C eine primitive Version 0 von Pascal, die weitere Entwicklung führt man dann in dieser Version 0 durch, also man schreibt Pascal V1 schon in Pascal V0 usw., dann trägt sich die Sprache sozusagen selbst.

Gruss Reinhard

Hallo Thomas

Das ist im Prinzip egal, hauptsache, der Computer versteht es.
Schlauer Spruch wird mancher sagen, aber man unterscheidet z.B. Interpreter und Compiler.
Ein Compiler kann in einer beliebigen Sprache geschrieben worden sein(z.B. Basic), und erzeugt idealerweise selbständigen Maschinencode, das ist auch das, was der Computer direkt ausführen kann.
Beim Interpreter ist es genauso: Ein Interpreter kann in einer beliebigen Sprache geschrieben worden sein, und muß nur das Programm lesen und daraufhin etwas zugeordnetes tun.
Im praktischen kommt es jedoch z.B. auf den Zeitverbrauch der Sprache an.
Hier wiederum kann man auf die Schnelligkeit der verschiedenen Compiler und Interpreter verweisen. Compilierte Programme sind nachher generell schneller.
Bei Forth zum Beispiel kann man den Wortschatz des Forth-Systems durch neue Worte erweitern. Ist der Forth-Kern in Assembler geschrieben, läuft das Forth schneller, als wenn es in C geschrieben wurde. Andere Sachen spielen da aber auch noch eine Rolle.

MfG
Matthias