Hlavní navigace

LuaJIT – Just in Time překladač pro programovací jazyk Lua (8 – základní vlastnosti trasovacího JITu)

V dalším článku o překladači LuaJIT si řekneme základní informace o činnosti trasovacího JITu používaného pro detekci těch částí kódu aplikace, které se budou v runtime překládat do nativního (strojového) kódu. Trasovací JIT tvoří zajímavou a dnes stále populárnější skupinu just-in-time překladačů.

Pavel Tišnovský

2. 12. 2014 0:00
| 3
Doba čtení: 14 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua (7 – dokončení popisu mezijazyka LuaJITu)

V sedmé části článku o Just in Time překladači LuaJIT dokončíme popis mezijazyka, který v LuaJITu plní funkci bajtkódu. Minule jsme se zmínili o způsobu překladu programových smyček, dnes na toto téma navážeme a popíšeme si způsob překladu smyčky for-each a následně pak práci s uzávěry (closures).

Pavel Tišnovský

25. 11. 2014 0:00
Doba čtení: 29 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua (6 – překlad programových smyček do mezijazyka LuaJITu)

V šesté části článku o Just in Time překladači nazvaném LuaJIT si vysvětlíme, jakým způsobem se překládají programové smyčky typu while, repeat-until i smyčky typu for-each používané jak při procházení běžných polí (s prvky adresovanými s využitím indexů), tak i při procházení všemi prvky asociativních polí.

Pavel Tišnovský

18. 11. 2014 0:00
Doba čtení: 16 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua (5 – tabulky a pole)

V páté části článku o Just in Time překladači nazvaném LuaJIT se budeme zabývat způsobem překladu programů pracujících s tabulkami. Ukážeme si způsob tvorby jednorozměrných i dvourozměrných tabulek a taktéž přístup k prvkům tabulek, a to jak s využitím celočíselných indexů, tak i s použitím klíčů.

Pavel Tišnovský

11. 11. 2014 0:00
Doba čtení: 21 minut

GCC 5 kompiluje rychle, pořád ale zaostává za Clangem

Phoronix porovnal aktuální překladače v připravované distribuci Fedora 21. Na startovní čáru byly postaveny GCC 4.9.2, LLVM Clang 3.4.2 a GCC 5.0. Vypadá to, že nová řada GCC 5 přinese ve většině případů výrazné zrychlení procesu kompilace proti…

Petr Krčmář

10. 11. 2014 11:12 |

LuaJIT – Just in Time překladač pro programovací jazyk Lua (4)

Čtvrtá část článku o Just in Time překladači nazvaném LuaJIT bude věnována problematice volání funkcí, předávání parametrů do funkcí a taktéž způsobu vracení hodnoty či většího množství hodnot z volaných funkcí. Seznámíme se i s dalšími instrukcemi mezijazyka využívaného LuaJITem.

Pavel Tišnovský

4. 11. 2014 0:00
Doba čtení: 28 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua (3)

Ve třetím článku o Just in Time překladači LuaJIT si popíšeme všechny instrukce mezijazyka (IR) implementující podmínky a relační operátory. Jedná se o rozšíření tématu, kterému jsme se věnovali minule, dnes se však budeme zabývat mj. i porovnáním obsahu proměnných s řetězci či se speciálními hodnotami true, false a nil.

Pavel Tišnovský

28. 10. 2014 0:00
| 4
Doba čtení: 23 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua (2)

Ve druhé části článku o Just in Time překladači LuaJIT si popíšeme způsob překladu aritmetických výrazů do mezijazyka LuaJITu. Kromě toho se taktéž budeme zabývat instrukcemi IR, které slouží pro implementaci podmínek a skoků. Tyto instrukce jsou použity jak při větvení, tak i při překladu programových smyček.

Pavel Tišnovský

21. 10. 2014 0:00
| 4
Doba čtení: 15 minut

LuaJIT – Just in Time překladač pro programovací jazyk Lua

Pro doplnění informací, které jsme si doposud v seriálu o jazyce Java (JVM) uvedli, si v několika článcích popíšeme velmi zajímavý projekt LuaJIT. Již z názvu tohoto projektu je zřejmé, že se jedná o „konkurenční “Just in Time překladač, který je možné použít společně s programovacím jazykem Lua.

Pavel Tišnovský

14. 10. 2014 0:00
Doba čtení: 13 minut

LLVM 3.5 přináší vylepšení C++1y a podpory 64-bit ARM

Vyšlo LLVM 3.5 společně s překladačem Clang 3.5. Přináší mnoho zlepšení kompilátoru včetně sjednoceného backendu pro 64-bit ARM, vylepšení jazyka C++1y a C++1z, možnost sestavení sebe sama v Linuxu a FreeBSD na SPARC64 a mnoho dalšího. Stahovat můžete z llvm.org.

Petr Krčmář

8. 9. 2014 13:16 |
| 2

Porovnání překladačů Intel C++, GNU C++ a LLVM Clang

Vývojář Jeff Cogswell na Slashdotu porovnává tři překladače C++: Intel C++, GNU C++ a LLVM Clang. Snaží se při tom vyřadit všechny vnější vlivy, které by mohly výsledky rozkolísat či znehodnotit. Nakonec dochází k poměrně jasnému závěru: „Zajímavé…

Petr Krčmář

6. 11. 2013 13:14 |

Vyšlo GCC 4.8.2

Dne 16. října vydal release maintainer projektu GCC Jakub Jelínek druhou opravnou verzi GCC; první opravná verze 4.8.1 byla vydána přibližně před pěti měsíci. Nová verze je dostupná na veřejných FTP serverech. Jelikož se jedná pouze o opravné…

Redakce

16. 10. 2013 17:53 |
| 7

Má být kompilátor energeticky úsporný?

V mailové konferenci projektu LLVM se diskutuje o tom, zda by neměl kompilátor nabízet zvláštní režim, ve kterém bude generovat energeticky úspornější binárky. Otázkou je, jestli to má vůbec smysl řešit nebo je lepší prostě aplikaci zkompilovat…

Petr Krčmář

17. 4. 2013 12:16 |

GCC 4.7.3 opravuje více než stovku chyb

Pokud se pořád držíte starší řady GCC, potěší vás zpráva, že vyšla nová verze 4.7.3, která opravuje více než sto chyb. Oficiálně bylo od předchozího vydání opraveno 118 chyb.

Petr Krčmář

12. 4. 2013 13:50 |
| 1

Distcc: kompilujte distribuovaně a rychle

Sestavování binárních souborů ze zdrojových kódů může být někdy zdlouhavé. Dnes si představíme nástroj, pomocí kterého lze kompilaci paralelně zpracovávat na více počítačích a tím ušetřit spoustu času. To se může hodit nejen vývojářům, ale i uživatelům distribucí, které nepoužívají binární balíčky.

Ondřej Caletka

24. 1. 2013 0:00
Doba čtení: 8 minut

GCC také diskutuje ukončení podpory procesorů 386

Po té co byla z linuxového jádra odebrána podpora pro procesory 386 začala i mezi vývojáři GCC diskuze nad tímto tématem. Navrhovaná varianta je začít podporovat již pouze i486 a vyšší. Došlo by tak k pročištění většiny knihoven, které dnes musí…

Kamil Pošvic

14. 12. 2012 12:48 |

Vývoj nových funkcí do Gcc 4.8 je u konce

Vývoj nové verze překladače Gcc 4.8 se přesunul do druhé fáze. Všechny novinky jsou už hotové a teď už se bude jen ladit a budou se odstraňovat případné chyby. Vydání je plánováno na březen nebo duben příštího roku, tedy přesně rok po vydání…

Petr Krčmář

7. 11. 2012 10:41 |

GCC Explorer: interaktivní kompilace

Matt Godbolt na svém blogu představil jeho nový nástroj pro analýzu výstupu GCC kompilátoru. Jde o webovou aplikaci, kde do levé části píšete svůj C/C++ kód a v druhé části vidíte co vyleze z GCC. Kompilátoru můžete dávat různé parametry a dokonce…

Adam Štrauch

28. 5. 2012 9:16 |
| 2

Jednotky pro správu paměti (MMU) na mikroprocesorech ARM

Dnes se budeme zabývat popisem jednotek pro správu paměti (Memory Management Unit – MMU) implementovaných na některých mikroprocesorech s architekturou ARM. MMU je samozřejmě důležitou součástí těchto procesorů, protože zajišťuje ochranu paměti i využití virtuálního adresního prostoru.

Pavel Tišnovský

22. 5. 2012 0:00
| 2
Doba čtení: 18 minut

Podpora instrukcí typu SIMD na mikroprocesorech ARM

V dnešní části seriálu o architekturách počítačů se budeme opět zabývat popisem mikroprocesorů patřících do rodiny ARM. Zaměříme se na popis SIMD instrukcí, které sice původně nebyly součástí mikroprocesorů ARM, ale postupně začaly být implementovány jako volitelná rozšíření do některých mikroprocesorových jader.

Pavel Tišnovský

15. 5. 2012 0:00
| 6
Doba čtení: 20 minut

FreeBSD 10 plánuje přejít na Clang jako výchozí kompiler

Podle zprávy FreeBSD Status Report za první čtvrtletí tohoto roku se zdá, že LLVM (Low Level Virtual Machine) kompiler Clang rychle nahrazuje GCC v tomto populárním BSD systému. Jedním z cílů pro FreeBSD 10 je nahradit GCC a používat Clang jako…

Kamil Pošvic

14. 5. 2012 15:08 |
| 6

Mikroprocesory ARM a architektura VFP (Vector Floating Point)

V dnešní části seriálu o architekturách počítačů se již podruhé budeme zabývat způsobem zpracování numerických hodnot s plovoucí řádovou čárkou na mikroprocesorech ARM. Minule jsme si popsali technologii FPA (Floating Point Accelerator), dnes se zaměříme na alternativní technologii VFP (Vector Floating Point).

Pavel Tišnovský

24. 4. 2012 0:00
| 4
Doba čtení: 17 minut

Práce s hodnotami s plovoucí řádovou čárkou na mikroprocesorech ARM

V seriálu o architekturách počítačů jsme se již seznámili se všemi třemi instrukčními sadami mikroprocesorů ARM – jak s původní RISCovou sadou, tak i se sadou Thumb a Thumb-2. Ještě jsme si však prakticky nic neřekli o podpoře práce s hodnotami s plovoucí řádovou čárkou. Nyní nastal pravý čas tuto informaci doplnit.

Pavel Tišnovský

17. 4. 2012 0:00
| 5
Doba čtení: 17 minut

Instrukční sada Thumb-2 u mikroprocesorů ARM

Dnes si popíšeme další alternativní instrukční sadu, kterou jsou vybaveny novější modely mikroprocesorů ARM. Jedná se o instrukční sadu pojmenovanou Thumb-2, která byla navržena takovým způsobem, aby co nejlépe spojila přednosti původní RISCové 32bitové instrukční sady a 16bitové sady Thumb.

Pavel Tišnovský

10. 4. 2012 0:00
| 8
Doba čtení: 17 minut

Mikroprocesory ARM a instrukční sada Thumb - dokončení

Dnes dokončíme popis instrukční sady Thumb, která může být použita u novějších mikroprocesorů s architekturou ARM. Minule jsme si popsali formát aritmetických a logických instrukcí i instrukcí skoku, dnes se zaměříme na instrukce typu Load & Store, tj. na instrukce pro přenos dat mezi registry a pamětí.

Pavel Tišnovský

3. 4. 2012 0:00
| 8
Doba čtení: 18 minut

Historie vývoje počítačových her (20.část - hry pro konzoli Sega SG-1000)

V dnešní části seriálu o historii vývoje výpočetní techniky nejprve dokončíme popis herní konzole Sega Game 1000 a pak se stručně seznámíme s některými hrami, které pro tuto herní konzoli vznikly. Některé hry byly převzaty z jiných herních konzolí či video automatů, další však vznikly originálně právě pro SG-1000.

Pavel Tišnovský

29. 3. 2012 0:00
| 9
Doba čtení: 21 minut

Mikroprocesory ARM a instrukční sada Thumb

Dnes se budeme zabývat instrukční sadou Thumb, podporovanou u moderních variant mikroprocesorů s architekturou ARM. Zavedením této instrukční sady se konstruktéři procesorů ARM snažili o spojení předností architektury RISC s větší „hustotou kódu“ dosahovanou u některých procesorů s architekturou CISC.

Pavel Tišnovský

27. 3. 2012 0:00
Doba čtení: 18 minut

Vyšlo GCC 4.7.0

Ve středu oslavilo GCC (GNU Compiler Collection) výročí 25 let od založení a u té příležitosti vyšla i nová verze 4.7.0. První verze vyšla v roce 1987 a nikdo asi tenkrát netušil, jaký přínos pro open source bude mít a že se stane jedním…

Kamil Pošvic

23. 3. 2012 10:26 |
| 2

GCC 5.0 zřejmě nastoupí cestu modularity

Vývojáři projektu GCC přemítají nad vlastnostmi nové páté řady, jejíž vývoj nás brzy čeká. Hned poté, co bude v dubnu vydáno GCC 4.7. Nová major verze pravděpodobně přinese zásadní změnu v možnosti modularizace. Inspirovala se při tom…

Petr Krčmář

21. 3. 2012 12:21 |

Instrukční sada mikroprocesorů ARM

Dnes se již potřetí budeme zabývat popisem mikroprocesorů s architekturou ARM. Řekneme si další informace o jejich instrukční sadě, a to jak té původní RISCové sady, tak i instrukční sady Thumb, jenž byla později rozšířena takovým způsobem, aby bylo možné používat instrukce o variabilní šířce 16 a 32 bitů.

Pavel Tišnovský

20. 3. 2012 0:00
Doba čtení: 15 minut