Ako vznikol prvý kompilátor?

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #15 kdy: 30. 07. 2014, 10:53:58 »
napr. jazelle

Jazelle není HW JVM, to je obecně oblíbený omyl. Některé věci, které autoři nebyli schopni realizovat v mikrokódu, jsou jako standardní program ve strojovém kódu.


Tomáš Roll

Re:Ako vznikol prvy kompilator?
« Odpověď #16 kdy: 30. 07. 2014, 11:01:04 »
...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.

Co ti brání tvůj sofistikovaný a vysoce optimalizující kompilátor zkompilovat v jednoduchém neefektivním kompilátoru a pak ho znova zkompilovat v tom svém novém právě zkompilovaném kompilátoru?

Re:Ako vznikol prvy kompilator?
« Odpověď #17 kdy: 30. 07. 2014, 11:06:55 »
bolo viacero pokusov o procesor, ktory vedel vykonavat jvm instrukcie

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

 ;D  ;D  ;D
wölø

Tomáš Marný

Re:Ako vznikol prvy kompilator?
« Odpověď #18 kdy: 30. 07. 2014, 11:08:46 »
Svatá prostoto! Podobné otázky se za mých mladých osmdesátých let řešily v knížkách pro děti od Albatrosu. Výhodou bylo, že v tom nebyly gramatické chyby a že to řešil člověk, který o tom aspoň něco věděl.

(1) Kritická část po resetu se vyšila jehlou a drátem do určené oblasti feritové paměti. -- Cože??? ;D Mohl bys to rozvést trochu podrobněji? ;D)

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #19 kdy: 30. 07. 2014, 11:21:47 »
Cože??? ;D Mohl bys to rozvést trochu podrobněji? ;D)

Není co rozvádět, polovodičová ROM ještě nebyla, tak se bity doslova zadrátovaly na potřebnou hodnotu. Navlékaly se kroužky na drátky jako když se vyšívá obraz do koberce.)

V počátcích IT se dělaly různé podobné kousky, namátkou tohle:
http://cs.wikipedia.org/wiki/Pam%C4%9B%C5%A5_se_zpo%C5%BE%C4%8Fovac%C3%AD_linkou


Karel

Re:Ako vznikol prvy kompilator?
« Odpověď #20 kdy: 30. 07. 2014, 11:25:11 »
Tady je trochu chyba v úhlu pohledu. Na kompilaci jazyka C (zřejmě platí pro většinu jazyků) do strojového kódu není potřeba kompilátor. Ten překlad se dá udělat s tužkou, papírem, referenční příručkou procesoru a trochou času a zkušeností.

Pro jazyk C se to běžně učilo na VŠ a dodnes se to i dělá v oboru "embedded zařízení". Vezme se program v C a některé jeho funkce se ručně "zkompilují" do assembleru. Takže i dnes může vzniknout "první kompilátor" tím, že ho někdo napíše v assembleru a ten pak ručně převede do strojového kódu. V rámci studia se to dodnes dělá, akorát už ne na PC, ale na něčem jiném. Strojový kód 8086 ještě šel, ale pro nové procesory už je to šílenost. Proto se to učí třebas na mikrořadičích, případně na emulátorech starých procesorů/počítačů (ZX Spectrum, MC68000, PC AT epod.) Starý vtip: opravdový programátor používá "copy con myapp.com".

Další krok je pak "evoluce". V assembleru udělám jen nezbytně nutnou funkcionalitu. Překladač, který vezme zdroják v C a vygeneruje fungující program. Bez optimalizací, bez linkování knihoven atd. V té chvíli mám překladač jazyka C a můžu začít programovat překladač jazyka C, tentokrát nikoliv v assembleru, ale v C. Tím, že to je v C, je snažší do toho implementovat všelijaké optimalizace, linkování atd. Ve chvíli, kdy tenhle nový překladač bude fungovat uspokojivě, můžu začít svůj překladač překládat v tom novém překladači a začít využívat všelijaké optimalizace, dynamické linkování atd. To mi dá ještě větší volnost a možnosti a kolo se roztáčí. Poslední verze překladače pak už nejde přeložit tím "prvním překladačem", protože ten takhle složitý dialekt C nezvládal.

Tomáš Marný

Re:Ako vznikol prvy kompilator?
« Odpověď #21 kdy: 30. 07. 2014, 12:23:15 »
Cože??? ;D Mohl bys to rozvést trochu podrobněji? ;D)

Není co rozvádět, polovodičová ROM ještě nebyla, tak se bity doslova zadrátovaly na potřebnou hodnotu. Navlékaly se kroužky na drátky jako když se vyšívá obraz do koberce.)

V počátcích IT se dělaly různé podobné kousky, namátkou tohle:
http://cs.wikipedia.org/wiki/Pam%C4%9B%C5%A5_se_zpo%C5%BE%C4%8Fovac%C3%AD_linkou

Ale blbost, nic se nevyšívalo. Kdes na to pro boha přišel? ROM samozřejmě byla, na ROMce není nic technologicky náročného - matice tavných pojistek, v polovodičovém provedení matice diod, které buď programováním odprásknu nebo je nechám být - nic jednoduššího už snad ani není. Problém byl s dostatečně rychlou RAM - a k tomu právě sloužila feritová paměť, jež byla rychlá a spolehlivá, i když přísně vzato to nebyla RAM, ale spíš EEPROM. Nic se do ní nevyšívalo, jednalo se o bloky matic feritových kroužků navlečených na dvojici kolmých adresových vodičů a protažených jedním společným datovým vodičem pro daný blok. Programovala, vyčítala a mazala se elektricky.
Chápu, že to je historie, ale ani dnes není problém během pár vteřin si najít, co to bylo, k čemu se to používalo a jak to fungovalo, místo psaní nesmyslů o nějakém vyšívání.

v

Re:Ako vznikol prvy kompilator?
« Odpověď #22 kdy: 30. 07. 2014, 12:27:27 »
Ale blbost, nic se nevyšívalo.
Chápu, že to je historie, ale ani dnes není problém během pár vteřin si najít, co to bylo, k čemu se to používalo a jak to fungovalo, místo psaní nesmyslů o nějakém vyšívání.

http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/apollo/public/visual3.htm

dnes není problém během pár vteřin si najít, co to bylo, k čemu se to používalo a jak to fungovalo, místo psaní nesmyslů

souhlas

Tomáš Marný

Re:Ako vznikol prvy kompilator?
« Odpověď #23 kdy: 30. 07. 2014, 12:50:43 »
http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/apollo/public/visual3.htm

Jenže tohle není to, čemu se říká feritová paměť. Ve feritové paměti slouží kroužky feritu jako nosič informace, v tomto případě jde pouze o transformátory. Navíc je to velmi speciální aplikace - naváděcí počítač rakety, který musel být radiačně a ESD odolný, proto bylo použití polovodičů dosti riskantní. Rozhodně to ale není něco, co by se běžně ve výpočetní technice používalo.

Kolemjdoucí

Re:Ako vznikol prvy kompilator?
« Odpověď #24 kdy: 30. 07. 2014, 13:12:44 »
Ale blbost, nic se nevyšívalo. Kdes na to pro boha přišel? ROM samozřejmě byla, na ROMce není nic technologicky náročného - matice tavných pojistek, v polovodičovém provedení matice diod, které buď programováním odprásknu nebo je nechám být - nic jednoduššího už snad ani není. Problém byl s dostatečně rychlou RAM - a k tomu právě sloužila feritová paměť, jež byla rychlá a spolehlivá, i když přísně vzato to nebyla RAM, ale spíš EEPROM. Nic se do ní nevyšívalo, jednalo se o bloky matic feritových kroužků navlečených na dvojici kolmých adresových vodičů a protažených jedním společným datovým vodičem pro daný blok. Programovala, vyčítala a mazala se elektricky.

Nemáš ani tušení jak funguje polovodičová ROM. Ta se navíc rozšířila až v 60. letech.

Již jsem zmínil, že se takhle dělaly pouze nejnutnější úseky, ne celé programy jako tady http://en.wikipedia.org/wiki/Core_rope_memory

Jenže tohle není to, čemu se říká feritová paměť. Ve feritové paměti slouží kroužky feritu jako nosič informace, v tomto případě jde pouze o transformátory. Navíc je to velmi speciální aplikace - naváděcí počítač rakety, který musel být radiačně a ESD odolný, proto bylo použití polovodičů dosti riskantní. Rozhodně to ale není něco, co by se běžně ve výpočetní technice používalo.

Z toho stejného kroužku se udělá transformátor, nepřekvapivě.

Inkvizitor

Re:Ako vznikol prvy kompilator?
« Odpověď #25 kdy: 30. 07. 2014, 13:18:54 »
Na to jsi přišel jak, machýrku? Abys mohl **z ničeho** vydupat super kompilátor, to chce nějaký čas. Asi těžko si v assembleru uděláš z ničeho LLVM a CLang. Nehledě na to, že autor původního dotazu se na nic tak sofistikovaného neptal.


...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.

Jenda

Re:Ako vznikol prvy kompilator?
« Odpověď #26 kdy: 30. 07. 2014, 13:28:40 »
Není co rozvádět, polovodičová ROM ještě nebyla, tak se bity doslova zadrátovaly na potřebnou hodnotu. Navlékaly se kroužky na drátky jako když se vyšívá obraz do koberce.)
Je ti jasné, že feritová paměť („kroužky na drátech“) je volatilní? Když chceš zadrátovat hodnotu, připojíš to na nulu nebo jedničku, žádný kroužek není potřeba.

v

Re:Ako vznikol prvy kompilator?
« Odpověď #27 kdy: 30. 07. 2014, 13:36:23 »

Jenda

Re:Ako vznikol prvy kompilator?
« Odpověď #28 kdy: 30. 07. 2014, 13:40:01 »
Nemáš ani tušení jak funguje polovodičová ROM. Ta se navíc rozšířila až v 60. letech.

Jo, zdá se mi, že popsal PROM. Polovodičová ROM má ty bity normálně vymaskované přímo na čipu hliníkem, ne? (někde jsem měl hezkou fotku z mikroskopu, teď ji nemůžu najít)

Již jsem zmínil, že se takhle dělaly pouze nejnutnější úseky, ne celé programy jako tady http://en.wikipedia.org/wiki/Core_rope_memory

Aha, to jsem nevěděl. Jaký byl důvod patlat se s šitím transformátorů místo toho to prostě naswitchovat v matici natvrdo.

Jenda

Re:Ako vznikol prvy kompilator?
« Odpověď #29 kdy: 30. 07. 2014, 13:45:24 »
a adresovat to bude jak?
Jo to je pravda, stejně tam potřebuju spínací prvek.