Jak jsem narazil v článku o šíleným programování na nadpis o zápisu čísly, tak nevím proč, ale hned jsem si vzpomněl na ZX Spectrum a jeho Basic. To je taky zajímavý jazyk (resp. lehce ujetý systém):
- každý řádek má povinně svůj label, reprezentovaný číslem
- každý příkaz je v paměti uložen jako číslo
- proměnný mají jenom dva typy, číslo a string
- délka názvu proměnné je omezena tuším na dva znaky
- funkce může být jenom matematický výraz
- fakt, že čísla příkazů jsou převedeny na pseudoanglický slova je dostatečně šíleně kompenzován klávesnicí, kde je 40 tlačítek a každý má tuším šest funkcí.
A když si představím, že v tom jsem napsal svůj první program... Brr :D
Ten BASIC byl spíše agilní než moderní :-) Pokud se použil TURBO BASIC, pak se uživatel dostal na zcela jinou úroveň programování – byla tam spousta syntaktického pozlátka (jakože procedury a cykly..), lepší kontrola chyb, větší množství volné paměti (!) a především vyšší rychlost. Jak bylo možné zrychlit provádění programu? Snadno. ATARI BASIC při každém skoku opakovaně vyhledával cílový řádek, a to vždy od začátku programu. Opravdu se vyplatilo dát déle prováděné smyčky na začátek programu.
- každý řádek má povinně svůj label, reprezentovaný číslem
Jo, to je BASIC. Viz ECMA-55. Jinak Kurtz číslování řádků opustil už v sedmdesátých letech, ale tradice je tradice.
- každý příkaz je v paměti uložen jako číslo
Dneska se tomu říká bytekód, tenkrát tokeny.
- proměnný mají jenom dva typy, číslo a string
Číslo s plovoucí desetinnou čárkou nebo string libovolné délky, s velikostí omezenou dynamickým přidělováním paměti.
- délka názvu proměnné je omezena tuším na dva znaky
Délka názvu číselné proměnné je neomezená, pole a řetězce můžou být jednoznakové.
- funkce může být jenom matematický výraz
Jo, to je BASIC. Viz ECMA-55. Také můžou být logické i s rekurzí, ale v každém případě jenom jednořádkové.
- fakt, že čísla příkazů jsou převedeny na pseudoanglický slova je dostatečně šíleně kompenzován klávesnicí, kde je 40 tlačítek a každý má tuším šest funkcí
To existovalo dávno před Sinclairem (třeba Wang 2200), a když se to člověk naučí zpaměti, tak ten program píše neuvěřitelně rychle. I velmi dlouhá slova jako RANDOMIZE se dají napsat na maximálně tři stisky kláves. Kromě toho to geniálně zjednoduší editor, protože se nemusí parsovat text, ale z klávesnice se zadávají přímo tokeny, což přesně odpovídá Sinclairově konstrukční filozofii - maximálně to ojebat, aby to ještě fungovalo. Například oddělení sběrnic Spectra rezistory místo hromady drahých hradel... :-D
Jsem si vzpomněl jak mne vlastně dementní Basic od vilika brány v2.0 na c64 vlastne naučil low level veci a asm ještě dementnejsiho procesoru. Njn. Vzpomínky na první a druhou třídu. Nechápu na co si spectristi ztezovali. Vždyť ten basic uměl I kreslitka I pipatka. Nemuseli hned honit peeky a pokemony. I když ovládání horší než německý kalkulačky to zas jo.