Ako vznikol prvý kompilátor?

noname

Ako vznikol prvý kompilátor?
« kdy: 30. 07. 2014, 00:37:15 »
Rozmyslal som nad tym, ze ked mam nejake zdrojaky napr. v C, tak aby som vedel spustit ten program, tak ich musim skompilovat prekladacom (napr. gcc). Lenze ten samotny gcc kompilator (spustitelny subor) je tiez skompilovany kompilatorom, ktory musel niekto skompilovat a tak dalej.

Ako ale potom vznikol uplny prvy kompilator?

Dalej, ked si napr. zoberiem prekladac ako je LLVM, tak to bolo skompilovane s gcc? A mozu potom uz kompilovat LLVM s LLVM resp. s clangom?

Asi blbe otazky ale toto by som rad vedel :)
« Poslední změna: 04. 08. 2014, 11:33:54 od Petr Krčmář »


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Ako vznikol prvy kompilator?
« Odpověď #1 kdy: 30. 07. 2014, 01:14:51 »
To, na co se ptáš, je defakto první prověrka každého kompilátoru. Zda dokáže přeložit sám sebe.

Historicky:
Úplně první programy se cvakali ručně, pomocí kolíčků, přepínačů, atd. To znamená, že jsi si to napsal na papír, a musels mít dobře.
Pak se vytvořili Asemblery, které jen převáděli MOV na její hexa reprezentaci. Tento první asembler byl napsaný ručně, na papír, pomocí přepínačů, kolíčků napchán do stroje.
Pak se vytvořili lepší Asemblery, které toho uměli více, a které byly napsané v předchozí verzi Asembleru.
Pak se vytvořili Lispy, které byly napsány v Asembleru.
Pak se vytvořil jazyk C, který byl napsán v Asembleru.
Pak se vytvořil jazyk Haskell, který byl napsán v C.
Pak se vytvořil jazyk Java, který byl napsán v C.
(Nezajímavé jazyky přeskakuju.)

Schematicky:
Vždycky se překládá nová verze jazyka pomocí předchozí verze, nebo jiného již existujícího jazyka.

Zajímavé by pro tebe mohl být Turingův stroj a princip turingovsky kompetního stroje/jazyka.

noname

Re:Ako vznikol prvy kompilator?
« Odpověď #2 kdy: 30. 07. 2014, 01:40:26 »
Takze ked si zoberiem tu Javu, tak v C bol napisany java kompilator (javac) prelozeny s gcc. V C je napisany ten virtualny stroj (prelozeny s gcc), ktory konzumuje bajtkod, ktory je vytvoreny tym java kompilatorom v C?

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #3 kdy: 30. 07. 2014, 01:59:10 »
První kompilátor vzniknul jako program v ASM.
První program se realizoval takhle:
1) Kritická část po resetu se vyšila jehlou a drátem do určené oblasti feritové paměti.
2) Zbytek se nacvakal ručně speciálním HW přípravkem, mělo to displej na jeden byte, potřebný počet vypínačů jeden pro každý bit, enter, krok vpřed, vzad.
3) Až se takhle podařilo do feritové paměti dostat loader na pásku, tak další program se ručně vyděroval na papírové pásce a tu už počítač schroupal.
4) Po čase se takhle napsal program co uměl i vyděrovat pásku a to už je skoro jako dnes :-)

Zde je příklad jak se dělalo to ruční cvakání:
http://www.iva-w.org/ZXS/Prom2.gif
http://www.iva-w.org/ZXS/sinclair_zx_spectrum.htm

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #4 kdy: 30. 07. 2014, 02:11:34 »
JVM musí být povinně v jazyku produkujícím binárky, je použito C nebo C++.
javac bylo ze začátku v C, nyní je údajně v Javě, ale může být v čemkoliv.


Jozo Lakatos

Re:Ako vznikol prvy kompilator?
« Odpověď #5 kdy: 30. 07. 2014, 08:21:33 »
uplne prvni kompilator se proste narodil. pak vymyslel papyrus. elektronku. derny stitek. ram. a pak uz konecne i jiny druh kompilatoru.

Inkvizitor

Re:Ako vznikol prvy kompilator?
« Odpověď #6 kdy: 30. 07. 2014, 08:53:17 »
Kompilátor jazyka je program jako každý jiný. Tudíž je možné ho napsat v assembleru nebo přímo ve strojovém kódu. Samozřejmě, ve vyšším jazyce se takový program píše lépe, nepotřebuješ k tomu ale nějaký rozsáhlý jazyk a knihovny, protože problém, který řešíš, je poměrně omezený. Tudíž, kdybych měl dělat kompilátor "od nuly", udělal bych si napřed v nižším jazyce nějaký jednodušší jazyk - třeba nějakou variantu LISPu a z něj bych se teprve pouštěl do něčeho většího.

Re:Ako vznikol prvy kompilator?
« Odpověď #7 kdy: 30. 07. 2014, 09:07:31 »
JVM musí být povinně v jazyku produkujícím binárky, je použito C nebo C++.
Ve skutečnosti existují třeba implementace JVM v JavaScriptu, v Javě nebo přímo v hardwaru.

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #8 kdy: 30. 07. 2014, 09:18:48 »
Ve skutečnosti existují třeba implementace JVM v JavaScriptu, v Javě nebo přímo v hardwaru.

No dobře, můžete transformovat JVM do jiného VM nebo interpretu, ale na konci takového řetězce bude nepochybně vždy binárka, procesor nic jiného neumí.
Komerční HW JVM neexistuje, v opačném případě prosím odkaz na eshop.

NooN

Re:Ako vznikol prvy kompilator?
« Odpověď #9 kdy: 30. 07. 2014, 09:32:29 »
...nepotřebuješ k tomu ale nějaký rozsáhlý jazyk a knihovny, protože problém, který řešíš, je poměrně omezený....

Tak ty asi vela toho o programovani nevies a ani netusis co taky kompilator v dnesnej dobe robi.

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #10 kdy: 30. 07. 2014, 09:45:16 »
Tak ty asi vela toho o programovani nevies a ani netusis co taky kompilator v dnesnej dobe robi.

Kompilátor funguje odjakživa pořád stejně a to tak, že strojově přepisuje vyšší jazyk do assembleru (popř. do jiného jazyka). Pokročilé optimalizace tuto základní funkčnost nemění.

perceptron

Re:Ako vznikol prvy kompilator?
« Odpověď #11 kdy: 30. 07. 2014, 09:45:40 »
Citace
ale na konci takového řetězce bude nepochybně vždy binárka,
nevidim do toho az tak, ale bolo viacero pokusov o procesor, ktory vedel vykonavat jvm instrukcie, alebo aspon pre to bola vylepsena podpora

napr. jazelle http://www.arm.com/products/processors/technologies/jazelle.php

Lol Phirae

Re:Ako vznikol prvy kompilator?
« Odpověď #12 kdy: 30. 07. 2014, 10:04:40 »
bolo viacero pokusov o procesor, ktory vedel vykonavat jvm instrukcie

A takhle dopadli jejich autoři...  ;D :D

strepty

Re:Ako vznikol prvy kompilator?
« Odpověď #13 kdy: 30. 07. 2014, 10:24:16 »
Neviem ako  vznikol prvy kompilator ale ak mam verit tomu co je napisane na Youtube tak ho napisala Admiralka Grace Hopper pre Mark1. Admiral Grace Hopper was one of the first programmers of the Harvard Mark I computer. She developed the first compiler for a computer programming language.
Zda sa ze to bola celkom mudra pani  https://www.youtube.com/watch?v=9eyFDBPk4Yw

Tomáš Roll

Re:Ako vznikol prvy kompilator?
« Odpověď #14 kdy: 30. 07. 2014, 10:29:58 »
Nejdřív nebylo nic. Pak řekl Bůh "Budiž kompilátor".