C a C++ se mění stejně jako ostatní jazyky.
Poslední zajímavé knihy, které se mi dostali do ruky aneb veštracháno na netu ☺ „, jsou :
O° REILLY Effective Modern C++ 42 SPECIFIC WAYS TO IMPROVE YOUR USE OF C++11 AND C++14 od Scott Meyers.
Mohu říci, že je to zatím jedna z nejpůsobivějších publikací, které se mi dostali do rukou. Česká vydání se vůbec nedají srovnávat – zastaralé a k ničemu. Nežli u nás něco vydají, tak už existují další dvě verze vydání ☺.
Další velmi působivou publikací je „Introduction to Compilers and Language Design – Second Edition od Prof. Douglas Thain z
University of Notre Dame“ ve formátu ‚.pdf ‚ ( revision of 2023). Toto je pro změnu velmi dobré k samotného sestavování programu a pochopení podstaty programování a jako bonus si můžete dopracovat až vyvinutí vlastního vývojového jazyka 😝. Pokud vás i tato kniha zaujme pak doporučuji vrhnout se též na publikaci „The Art of Intel x86 Assembly Language“ , taktéž výborná publikace. Zde už jde ovšem o jazyk „Assembler“ ASM(assembly symbolically language), přesněji “ MASM“ což je v podstatě assembler od Microsoft (Microsoft Assembly Symbolically Language)…….to by continued 😂 😂 after the commercial break 😂 😂…………..Tak a jsem zpět a k čemu jsme se zatím dostaly? No upřímně vzato kolem a kolem vlastně k ničemu, ale alespoň jsme si představili několik zajímavých publikací, které opravdu stojí za to si prostudovat.
Vlastně pokud jste jako já takový samouk, tak vlastně chápete proč pokaždé uskočím od jednoho k druhému. Prostě mě zajímá kde a pro se to tam najednou objevilo, jak to funguje a hlavně proč to tak funguje. Chci znát celou podstatu a vlastně se nakonec prohrabu až na samotný začátek. Jediný problém je v tom, že jsem větším fanouškem „Microsoftu“ nežli linuxovým alternativním distribucím, které jsou též zajímavé, ale moc se jim nevěnuji. I když bývali časy kdy jsem jimi byl posedlý, ale byla to jen zvědavost a v té době bláhová touha vytvořit si svůj vlastní „OS“, jazyk atd.. No a v právě v tuto chvíli jsem si uvědomil, že je toho třeba znát mnohem více nežli jsem si původně myslel. A nyní ač chci nebo ne, tak se tomu nevyhnu aniž bych nezavadil převážně o Linuxové návody atp.. Těch existuje spousta oproti MS návodům. Tím nechci tvrdit, že jich není dost, ale rychlost vývoje jejich jazyků je docela vysoká a stíhat všechny změny není až tak jednoduchý úkol jak by se na první pohled zdálo 😂.

Jak jste si určitě všimly, zmínil jsem prozatím jen tři jazyky a přiznávám se, že to byl záměr. Důvod ? Zmíněné programovací jazyky jsou jedny z nejrychlejších vývojových jazyků. Například zmíněný Assembler (ASM – Assembly Symbolically Machine code – symbolický strojový kód) přistupuje přes debugger rovnou „linkerem“ přiřazení adres paměti a „loader“ zařídí běh samotného programu. (Mimochodem každé CPU např. jako Intel x86 či x64 má vždy vlastní sadu podporovaných symbolů.) Kdežto ty další dva zmíněné jsou nejprve překládány právě do symbolického jazyka procesoru(strojového jazyka) a pak teprve jsou kompletně sestavovány, ale i tak jsou tyto jazyky jedny z nejvýkonnějších. V současné době se jim svým výkonem pomalu začíná přibližovat i „Python“, který se postupem času stal i velice oblíbeným vývojovým jazykem(ten jsem zatím hlouběji neprostudoval 😂).
ASM- Assembler – what’s?
Assembler ASM (assembly symbolically machine language)
Assembler neboli jazyk symbolických instrukcí – co to vlastně znamená?! V podstatě to znamená, že jste co nejblíže k jazyku samotného stroje(procesoru), těsně před tím než se z těchto instrukcí stanou pouhé jedničky a nuly v kterých se nachází veškeré kouzlo programu. To už za vás udělá „debugger“.
Co se týče samotného způsobu programování v symbolickém jazyce, tak je spousta lidí, kteří ho považuji za velmi složitý, ale na druhou stranu naopak rychlý. Další výhodou je samotná velikost již sestaveného programu (či aplikace pokud si potrpíte na tento termínu 😅).
Momentálně se i zamýšlím jestli se vůbec vyplatí Vás tímto tématem mám nějak ztěžovat nebo se zmínit pouze okrajově, aby jste věděli alespoň maličko o co Gooo 😂.
Základem stejně jako u všech ostatních tipů jazyků jsou velikosti proměnných, které zde vystupují jako symboly s danou velikostí jako „byte“ – ten reprezentuje 8 bitů – 1 bajt po něm následně „word“ s dvojnásobnou velikostí tzn. 16 bitů/2bajty atd. je to vlastně stejné jako u databází.
Všechny operátory rozeznávají velká i malá písmenka(case-sensitive).
| Operátor | Bits | Bytes |
| byte | 8 | 1 |
| word | 16 | 2 |
| dword | 32 | 4 |
| fword | 48 | 6 |
| pword | 48 | 6 |
| qword | 64 | 8 |
| tbyte | 80 | 10 |
| tword | 80 | 10 |
| dqword | 128 | 16 |
| xword | 128 | 16 |
| qqword | 256 | 32 |
| yword | 256 | 32 |
Další nezbytnou součástí, která je potřeba znát jsou registry – jejich typ a velikost. Nutno volit správné symboly registrů pro jednotlivé operace i z důvodu správného běhu programu, ne se zaměřit pouze na velikost.
Registry se tedy dělí podle velikosti a též podle typu operace, kterou chceme, aby program vykonal. Registry dělíme na : General purposes, Segment, Control, Debug, FPU, MMX, SSE, AVX, AVX512, Opmask, Bounds. (Intel x86)(Samozřejmě platí, že každý procesor má vlastní instrukční set :-)). Všechny již zmíněné registry mají své symboly a různých velikostech. Například hlavní(general) pro 8 bitů disponuje těmito symboly: al, cl, dl, bl, ah, ch, dh, bh. Proč zrovna takhle? Protože ještě jsou rozděleny do dvou poddruhů. Kdo někdy tak trochu zkoušel AVR8BIT, tak se s tím určitě setkal, jedná se o dvě zkratky: LSB a MSB. Co znamenají? Ta první „LSB“ “ Less Significant Byte“(nejméně významný bit) jinak řečeno „Low Byte“ a samozřejmě druhá logicky „MSB“ „Most Significant Byte“( nejvýznamnější bit) a ten se nazývá „Hight Byte“, který například při číselném zápisu vyznačuje tzv. signifikaci – signed/unsigned což nám vlastně říká zda bude číslo pouze kladné a naopak zda může být hodnota jak kladná, tak záporná. Tak a právě jsem se dostal do bodu kdy se odkláním zcela od původního tématu 😂. To je moje specialita a děje se to stále dokola. Vždy narazím na něco co má opět další hlubší význam, třeba jako zmíněné bity, protože ne vždy reprezentují to co si myslíme, když programujete vývojové desky, tak se právě na těch bytech zadrhnete jen to fikne 😂.
U vývojových desek(jednodeskové pc), narážíte na překážky každou chvilku. Nejdříve narazíte na nějaké ty zkratky, které vám ale absolutně nedávají smysl a opět nastal čas na další hledání odpovědí. Vlastně je to nekonečné nežli se prokopete až k samotnému jádru. A právě tady zjistíte, že bity neznamenají pouze čísla či písmena, z větší části jsou jen nastavení jednotlivých hodnot, které chcete dále používat. Jako je například sériový port – stroj potřebuje vědět zda se bude číst či zapisovat anebo obojí. Taktéž to funguje u SPI, I2C či TWI (serial port interface – two wire interface) a samozřejmě USPI (univerzální sériový port) všechno to jsou komunikační sběrnice, které však fungují i na vašem PC (zajišťují chod PC BIOS (Basic Instructions Operating System)).

Napsat komentář