OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 17:54

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 19 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 17:19 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
Snažil jsem se zjistit kdy získalo C podporu čísel v plovoucí čárce. Protože The C Programming Language byla vydána v roce 1972. Intel udělal 8087 v roce 1980. Standard IEEE 754-1985 pro výpočty v plovoucí čárce je z roku 1985.
Z80 je z roku 1976 a nemá přímou podporu ani pro násobení a dělení celých čísel.

Podařilo se mi stáhnout první verzi té knížky a koukám že má nejen podporu pro float ale i pro double. A je tam krásně vidět proč vzniklo pravidlo že velikost není pevně daná, jen že je menší nebo rovno než další typ. short <= int <= long. Podpora byla pro DEC PDP-11, Honeywell 6000, IBM 370 a Interdata 8/32.

Tak studuji na netu co ty mainframy umí a všechny podporují jak float tak double přímo instrukčně (některé možná jako rozšíření v nějaké době). Včetně násobení a dělení. Takže C prostě jen použilo co ty stroje nabízely. A nějakou formu zápisu pro číslo v plovoucí čárce už někdo musel vymyslet dávno před 8087.

Hranaté závorky v odkazu system nedává tak jen:
ia801303.us.archive.org/1/items/TheCProgrammingLanguageFirstEdition/The%20C%20Programming%20Language%20First%20Edition%20[UA-07].pdf


Přílohy:
c_floating.png
c_floating.png [ 97.91 KiB | Zobrazeno 13705 krát ]

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 17:56 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
_dworkin píše:
A je tam krásně vidět proč vzniklo pravidlo že velikost není pevně daná, jen že je menší nebo rovno než další typ. short <= int <= long.
To je jedna z veci na ktoru pri cecku najviac nadavam. Pretoze casto potrebujem celociselny typ o konkretnej dlzke (napr. dvojbajtovy WORD) ale typ 'word' nie je vsade a ked chcem pouzit short int / int / long int tak rozne implementacie cecka ich maju rozne dlhe takze ani tadialto cesta nevedie. Stary dobry asembler, tam je pocet bitov pouziteho celociselneho typu vzdy presne dany a jasny.
_dworkin píše:
Tak studuji na netu co ty mainframy umí a všechny podporují jak float tak double přímo instrukčně (některé možná jako rozšíření v nějaké době). Včetně násobení a dělení. Takže C prostě jen použilo co ty stroje nabízely. A nějakou formu zápisu pro číslo v plovoucí čárce už někdo musel vymyslet dávno před 8087.
Ano, cisla v plavajucej ciarke boli zname uz davno predtym.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 18:13 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
Tak pokud mas kompiler s podporou C99 tak kdyz prilinkujes <stdint.h> tak budes mit uint8_t, uint16_t, uint32_t, uint64_t atd.

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 18:24 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
To spis boli v C vs assembler nedosazitelny zpusob ziskani priznaku bez nejakych specialnich maker od kompileru. Pak jen doufas ze prekladac je dost chytry a pochopi co si vlastne chtel a optimalizuje to...

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 20:02 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
_dworkin píše:
A nějakou formu zápisu pro číslo v plovoucí čárce už někdo musel vymyslet dávno před 8087.

Ta ubohá náhražka skutečného matematického procesoru :lol:

Tohle je opravdový chroupač čísel, mrkni na kapitolu 5: https://www.root.cz/clanky/superpocitace-cray-druha-cast/

Mainframy měly matematické koprocesory snad už v padesátých letech, a formáty používal každý výrobce a často i typ jiné.

Kdysi před lety, ještě v době kdy jsem se pokoušel naučit stroják Z80, jsem v jedné knížce narazil na instrukční sadu Systemu 370. To bylo moje osvícení, od té doby pohrdám čímkoliv co používá akumulátor :lol:

DMR měl na svém osobním webu zdrojáky ranných kompilátorů C, po jeho smrti to tam sice trochu prořídlo, ale naštěstí ho udržují jako pomník: https://www.bell-labs.com/usr/dmr/www/primevalC.html

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05.09.2017, 20:52 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 372 times
faraon píše:
Kdysi před lety, ještě v době kdy jsem se pokoušel naučit stroják Z80, jsem v jedné knížce narazil na instrukční sadu Systemu 370. To bylo moje osvícení, od té doby pohrdám čímkoliv co používá akumulátor :lol:

Dnešní inkarnace S/370 - System z má pořád těch luxusních 16 registrů pro všeobecné použití.
Jenom se tak trošku v duchu doby natáhly na rovných 64 bitů (a není to 64 bitů a la Atari Jaguar). Nové instrukce pořád přibývají; je jich už taková hromada, že je těžké si je zapamatovat nebo pořádně využít při programování.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 14.09.2017, 09:21 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
faraon píše:
DMR měl na svém osobním webu zdrojáky ranných kompilátorů C, po jeho smrti to tam sice trochu prořídlo, ale naštěstí ho udržují jako pomník: https://www.bell-labs.com/usr/dmr/www/primevalC.html


Na C-cku sa mi luby ze kompiler je napisany v C-cku uz od zaciatku.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 14.09.2017, 21:56 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
zz_indigo píše:
faraon píše:
Na C-cku sa mi luby ze kompiler je napisany v C-cku uz od zaciatku.
<outoftipic> Aj MRS (vyvojove prostredie na vyvoj asemblerovych programov) bolo uz od zaciatku pisane v asembleri :) </outoftipic>


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 16.09.2017, 10:47 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Busy píše:
zz_indigo píše:
faraon píše:
Na C-cku sa mi luby ze kompiler je napisany v C-cku uz od zaciatku.
<outoftipic> Aj MRS (vyvojove prostredie na vyvoj asemblerovych programov) bolo uz od zaciatku pisane v asembleri :) </outoftipic>


to je ale trosku mensie wtf

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 29.09.2017, 05:27 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
https://www.root.cz/clanky/interni-repr ... -754-2008/

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 01.07.2018, 09:57 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
V blogu na ABCLinuxu se Pavel Křivánek pustil do sebetýrání historickými kompilátory Céčka.

Nejdřív K&R C na PDP-11: http://www.abclinuxu.cz/blog/squeaker/2018/6/historicke-kompilatory-jazyka-c-na-vlastni-kuzi-1

Potom HiSoft C na ZX Spectrum: http://www.abclinuxu.cz/blog/squeaker/2018/7/historicke-kompilatory-jazyka-c-na-vlastni-kuzi-2

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 01.07.2018, 13:02 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Pavel Křivánek někde vyhrabal mojí utilitku c2tap - to teda čumim :-)

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 02.07.2018, 11:08 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
faraon píše:
Citat z diskusie pod clankom:
Miloslav Ponkrác píše:
Stejně tak 8bitové mikropočítače nebyly ideální pro jazyk C. A také to podle toho dopadlo, tedy dost na nic. Zrovna na tom ZX Spectru se Pascal povedl 1000 x lépe než C
Tak to by ma saaakra zaujimalo, ako na toto ten clovek prisiel.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 02.07.2018, 13:11 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 372 times
Busy píše:
faraon píše:
Citat z diskusie pod clankom:
Miloslav Ponkrác píše:
Stejně tak 8bitové mikropočítače nebyly ideální pro jazyk C. A také to podle toho dopadlo, tedy dost na nic. Zrovna na tom ZX Spectru se Pascal povedl 1000 x lépe než C
Tak to by ma saaakra zaujimalo, ako na toto ten clovek prisiel.


Tím může být myšleno mnoho věcí. Já bych u jazyka C viděl dvě.

1. Princip odděleného překladu, tedy opakované spouštění řetězce editor/preprocesor/překladač/linker. Při typické konfiguraci s jednou disketovou mechanikou to asi nebyl příjemný způsob práce. Překladače Pascalu patrně kompilovaly rovnou do výsledné binárky (či souboru s p-kódem), možná i do paměti.
2. Mikroprocesor 6502 měl zadrátovanou podporu pro zásobník o velikosti 256 bytů. To je na automatické proměnné trochu málo. Překladače C to obcházely softwarovým zásobníkem, nebo zavedly pro automatické proměnné společný oddělený prostor (za cenu vzdání se rekurze).

Dnes, v době moderního vývojového prostředí CC65 (Spektristé si dosadí něco podobného pro Z80) je to už celkem jedno.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 02.07.2018, 14:34 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
baktra píše:
Spektristé si dosadí něco podobného pro Z80

Spektristé si zřejmě dosadí Z88DK, nic lepšího nenajdeš... ;)

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 19 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz