OldComp.cz

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

Reklama!

Právě je 18 lis 2018, 01:05

Všechny časy jsou v UTC + 1 hodina




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 zář 2017, 16:19 
Offline
Radil

Registrován: 23 čer 2013, 22:49
Příspěvky: 498
Has thanked: 25 times
Been thanked: 91 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. Standart 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 3848 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05 zář 2017, 16:56 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2016
Bydliště: Bratislava
Has thanked: 220 times
Been thanked: 373 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 zář 2017, 17:13 
Offline
Radil

Registrován: 23 čer 2013, 22:49
Příspěvky: 498
Has thanked: 25 times
Been thanked: 91 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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05 zář 2017, 17:24 
Offline
Radil

Registrován: 23 čer 2013, 22:49
Příspěvky: 498
Has thanked: 25 times
Been thanked: 91 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...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05 zář 2017, 19:02 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1611
Has thanked: 65 times
Been thanked: 275 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

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 05 zář 2017, 19:52 
Offline
Profík
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 569
Bydliště: Praha
Has thanked: 38 times
Been thanked: 140 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 zář 2017, 08:21 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13 kvě 2013, 09:52
Příspěvky: 1770
Bydliště: Mliecna draha
Has thanked: 20 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 zář 2017, 20:56 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2016
Bydliště: Bratislava
Has thanked: 220 times
Been thanked: 373 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 zář 2017, 09:47 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13 kvě 2013, 09:52
Příspěvky: 1770
Bydliště: Mliecna draha
Has thanked: 20 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 zář 2017, 04:27 
Offline
Radil

Registrován: 23 čer 2013, 22:49
Příspěvky: 498
Has thanked: 25 times
Been thanked: 91 times
https://www.root.cz/clanky/interni-repr ... -754-2008/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 01 črc 2018, 08:57 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1611
Has thanked: 65 times
Been thanked: 275 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

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Historie jazyka C
PříspěvekNapsal: 01 črc 2018, 12:02 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 424
Has thanked: 364 times
Been thanked: 197 times
Pavel Křivánek někde vyhrabal mojí utilitku c2tap - to teda čumim :-)

_________________
ZX Spectrum DELTA, D80, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub
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 črc 2018, 10:08 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2016
Bydliště: Bratislava
Has thanked: 220 times
Been thanked: 373 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 črc 2018, 12:11 
Offline
Profík
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 569
Bydliště: Praha
Has thanked: 38 times
Been thanked: 140 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 črc 2018, 13:34 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18 čer 2013, 19:26
Příspěvky: 2220
Has thanked: 82 times
Been thanked: 314 times
baktra píše:
Spektristé si dosadí něco podobného pro Z80

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

_________________
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


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 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