Články v rubrice Programovací jazyky
články 1 – 30 / 480
Pohled pod kapotu JVM (9.část - tajemství instrukcí lookupswitch a tableswitch)
V dnešní části seriálu o jazyce Java a JVM se již počtvrté budeme zabývat popisem instrukčního souboru virtuálního stroje Javy. Zaměříme se především na dvojici poměrně komplikovaných instrukcí nazvaných tableswitch a lookupswitch, pomocí nichž se implementují větvení programů realizované příkazy switch.
Pohled pod kapotu JVM (8.část - instrukce určené pro řízení běhu programu)
V dnešním článku o jazyce Java i JVM se již potřetí vrátíme k instrukčnímu souboru zpracovávanému virtuálním strojem Javy. Popíšeme si instrukce sloužící k řízení běhu programu. Jedná se o instrukce pro ukončení metody s předáním návratové hodnoty, nepodmíněné a podmíněné skoky a taktéž o instrukce pro rozvětvení.
Pohled pod kapotu JVM (7.část - další instrukce zpracovávané virtuálním strojem Javy)
V dnešním článku o jazyce Java budeme pokračovat v popisu instrukčního souboru zpracovávaného virtuálním strojem. Popíšeme si instrukce používané pro provádění aritmetických a bitových operací a také instrukce sloužící pro porovnání dvou hodnot. Na těchto instrukcích je mj. založeno i řízení běhu programů.
Pohled pod kapotu JVM (6.část - instrukční soubor virtuálního stroje Javy)
V dnešní části seriálu o programovacím jazyce Java si popíšeme první část instrukcí tvořících instrukční soubor virtuálního stroje Javy. Jedná se o instrukce sloužící pro uložení konstant na zásobník operandů, instrukce pro přesuny dat mezi proměnnými a zásobníkem operandů a taktéž o konverzní instrukce.
Pohled pod kapotu JVM (5.část - popis virtuálního stroje Javy)
V dnešní části seriálu o programovacím jazyce Java se budeme zabývat popisem vlastního virtuálního stroje Javy, v němž jsou zpracovávány instrukce bajtkódu tvořící těla jednotlivých metod. Popíšeme si strukturu virtuálního stroje v době běhu aplikace a nezapomeneme ani na základní informace o instrukčním souboru.
Pohled pod kapotu JVM (4.část - dokončení popisu struktury souborů .class)
V dnešní části seriálu o programovacím jazyce Java i o vlastnostech JVM dokončíme popis struktury bajtkódu, tj. souborů s koncovkou .class generovaných (většinou) překladačem Javy. Řekneme si, jakým způsobem jsou uloženy informace o datových položkách tříd, rozhraní či výčtových typů, jak jsou uloženy jednotlivé metody a zmíníme se taktéž o atributech přiřazených k vlastním třídám.
Pohled pod kapotu JVM (3.část - pokračování popisu struktury souborů .class)
Dnes se společně již potřetí vrátíme ke struktuře bajtkódu, tj. k souborům s koncovkou .class. Řekneme si, jakým způsobem jsou v bajtkódu uloženy další důležité informace: příznaky třídy či rozhraní, jméno implementované třídy, jméno nadtřídy a konečně i seznam všech implementovaných rozhraní.
Pohled pod kapotu JVM (2.část - podrobnější analýza obsahu constant poolu)
V devatenácté části seriálu o programovacím jazyce Java i o vlastnostech JVM budeme pokračovat v popisu bajtkódu, tj. interní struktury souborů s koncovkou .class. Dnes se zaměříme na strukturu položek umístěných v constant poolu. Taktéž bude ukázán poměrně jednoduchý nástroj, který dokáže obsah constant poolu vypsat.
Pohled pod kapotu JVM (1.část - prohlížení a modifikace bajtkódu)
V osmnácté části poněkud nepravidelně vycházejícího seriálu o programovacím jazyce Java i o vlastnostech JVM se budeme zabývat prohlížením a modifikací bajtkódu, do něhož jsou překládány zdrojové texty psané (nejenom) v Javě. Modifikace bajtkódu je často používána nástroji typu Cobertura, EMMA či AspectJ.
Výuka programování - nástroje pro ilustraci činnosti mikroprocesoru (2)
Ve čtrnácté části seriálu o programovacích jazycích (a dalších prostředcích) určených pro výuku programování se opět budeme zabývat popisem nástrojů, které mohou pomoci vysvětlit princip činnosti mikroprocesoru. Minule jsme se zabývali především uměle vytvořenými typy CPU, dnes se však zaměříme spíše na reálné čipy.
Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (5. část: projekt Panther)
V dnešní části seriálu o programovacích jazycích navržených pro výuku programování se budeme zabývat popisem projektu Panther. Jedná se o projekt, jenž je sice založený na Scratchi, ovšem hned v několika oblastech jeho možnosti rozšiřuje. Týká se to například možnosti práce se soubory, práce s barvami atd.
Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (4. část: pokročilá práce s BYOB)
V dnešní části seriálu o programovacích jazycích pro výuku programování budeme pokračovat v popisu BYOB, což je jeden z projektů, jehož cílem je rozšíření možností Scratche. Budeme se zabývat problematikou rozdělení programu na podprogramy, využitím rekurze a zmíníme se i o zajímavém projektu s názvem Elements.
Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (3. část: Scratch a BYOB)
V desáté části seriálu o programovacích jazycích navržených pro výuku programování nejprve dokončíme popis projektu Scratch. Řekneme si, jak se pracuje s operátory a taktéž i základní informace o programování řízeném událostmi. Poté se zaměříme na popis jednoho rozšíření Scratche: projektu BYOB (Build Your Own Block).
Scratch: plnohodnotný programovací jazyk nebo jen dětské puzzle? (2. část)
V dnešní části seriálu o programovacích jazycích navržených s ohledem na výuku programování budeme pokračovat v popisu projektu Scratch. Řekneme si zejména, jak lze vytvářet různé typy programových smyček a podmínek i to, jakým způsobem se pracuje se skalárními proměnnými a se seznamy.
Scratch: plnohodnotný programovací jazyk nebo jen dětské puzzle?
Dnešním článkem navážeme na rok starý seriál o programovacích jazycích navržených pro výuku programování. Zatímco většina předchozích částí seriálu se věnovala Squeaku, dnes se zaměříme na projekt Scratch. Uživatelské prostředí projektu Scratch totiž umožňuje, aby v něm vytvářely programy i děti z prvního stupně ZŠ.
Efektivní používání PL/pgSQL
V následujícím článku bych chtěl zkompletovat sérii článků, které jsem o PL/pgSQL pro Roota napsal. Kvůli PL/pgSQL jsem si vybral PostgreSQL a vlastně kvůli PL/pgSQL jsem se stal jedním z vývojářů PostgreSQL – při práci na jednom projektu mne PL/pgSQL drobet štval, tak jsem napsal patch, který byl přijat.
JamVM aneb alternativa k HotSpotu (nejenom) pro embedded zařízení, tablety a chytré telefony
V sedmnácté části poněkud nepravidelně vycházejícího seriálu o programovacím jazyce Java a o vlastnostech JVM si řekneme základní informace o projektu JamVM. Pod tímto názvem se skrývá virtuální stroj Javy představující alternativu ke známému HotSpotu pocházejícímu z dílny firmy Sun a později Oracle.
Podpora skriptovacích jazyků v JDK6 a OpenJDK6 (3.část)
Dnes se již potřetí vrátíme k aplikačnímu programovému rozhraní (API) navrženého v rámci JSR 223, které slouží k podpoře skriptovacích jazyků běžících nad virtuálním strojem Javy. Zaměříme se na předávání hodnot (obecně objektů) mezi aplikací v Javě a skriptem s využitím sdílených pojmenovaných objektů.
Podpora skriptovacích jazyků v JDK6 a OpenJDK6 (2.část)
V našem seriálu budeme pokračovat v popisu aplikačního programového rozhraní (API) navrženého v rámci JSR 223, které slouží k podpoře skriptovacích jazyků běžících nad virtuálním strojem Javy (JVM). Dnes se zaměříme především na podrobnější popis kooperace mezi aplikacemi v Javě a skripty v JavaScriptu.
Podpora skriptovacích jazyků v JDK6 a OpenJDK6
Ve čtrnáctém článku o jazyce Java se seznámíme s API určeným pro práci se skripty napsanými v různých skriptovacích programovacích jazycích. Toto API bylo navrženo tak, aby byl způsob volání skriptů, předávání parametrů skriptům, získávání návratových hodnot i další činnosti prováděny jednotným způsobem.
Využití skrytých vlastností JDK (1)
V dnešním článku o vlastnostech JDK 6 a JDK 7 si řekneme základní informace o jedné skryté (přesněji řečeno velmi málo zdokumentované a známé) vlastnosti nových verzí JDK. Jedná se o alternativní varianty tříd HashMap, LinkedHashMap a TreeMap uložené v archivu alt-rt.jar. Tyto třídy nabízí pro některé aplikace větší výkonnost.
Monitorování procesů a správa paměti v JDK 6 a JDK 7 - využití large pages
Ve dvanácté části seriálu o vlastnostech JDK 6 a JDK 7 (samozřejmě včetně OpenJDK) si řekneme, z jakého důvodu může být v některých případech vhodné používat takzvané large pages, známé též pod názvem huge pages. Jedná se o technologii nabízenou některými novějšími procesory, která je podporována i Linuxem (konkrétně jádry 2.6.x) a samozřejmě i běhovým prostředím Javy.
Monitorování procesů a správa paměti v JDK 6 a JDK 7 (5)
V jedenácté části seriálu o JDK 6 a JDK 7 (samozřejmě včetně OpenJDK) se opět budeme zabývat principem činnosti správců paměti a způsobům, jakými lze ovlivnit výkonnost virtuálního stroje Javy. Popíšeme si především rozdíl mezi různými správci paměti a zaměříme se na běh JVM na víceprocesorových počítačích.
Monitorování procesů a správa paměti v JDK 6 a JDK 7 (4)
V desáté části seriálu o vlastnostech JDK 6 a JDK 7 si ukážeme způsob ovlivnění chování správců paměti pomocí parametrů, které je možné specifikovat při spouštění běhového prostředí Javy (JRE). Zaměříme se především na způsob nastavování velikostí paměťových oblastí, ze kterých se skládá halda (heap).
Přednášky o Javě na konferenci FOSDEM 2011
Tento víkend se v Bruselu konal další ročník konference FOSDEM (Free and Open Source Software Developers' European Meeting). Na této konferenci proběhlo několik set přednášek s různými tématy – od úprav kernelu přes tvorbu balíčků pro různé distribuce až po přednášky orientované na jednotlivé programovací jazyky.
Monitorování procesů a správa paměti v JDK 6 a JDK 7 (2)
V deváté části seriálu o vlastnostech JDK 6 a 7 se budeme zabývat především principem práce správců paměti. Řekneme si, jaké veličiny se při sledování chování aplikace v reálném provozu mohou měřit a jak jsou tyto veličiny ovlivněny nastavením parametrů správců paměti při spuštění prostředí Javy (JRE).
Monitorování procesů a správa paměti v JDK6 a JDK7 (2)
V osmé části seriálu o vlastnostech JDK si ukážeme použití profileru, jenž je přímo součástí standardní instalace JRE. Také si řekneme, proč není vhodné, aby se v často volaném kódu spojovaly řetězce pomocí operátorů + a +=. V závěru se navíc seznámíme se základními způsoby implementace správců paměti.
Monitorování procesů a správa paměti v JDK6 a JDK7 (1)
V sedmé části seriálu o vlastnostech JDK (samozřejmě včetně OpenJDK) si řekneme základní informace o správě paměti ve virtuálním stroji jazyka Java. Taktéž se seznámíme se základními způsoby monitorování procesů běžících v JVM – zaměříme se přitom (alespoň prozatím) pouze na nástroje, které jsou dostupné přímo v JDK6 a JDK7.
Využití komprimovaných ukazatelů na objekty v JVM
V dnešní části seriálu o novinkách, které můžeme najít v syntaxi a sémantice programovacího jazyka Java i v jeho virtuálním stroji, si popíšeme vlastnost, která sice byla původně plánována až pro oficiální verzi JDK 7, ale nakonec ji mohou využít i programátoři a uživatelé používající JDK 1.6.0 14 a samozřejmě také OpenJDK 6. Jedná se o zavedení takzvaných komprimovaných ukazatelů na objekty, které lze používat na 64bitových platformách, včetně x86_64.
Novinky v JDK 7 (5) – projekt Lambda a anonymní funkce v příkladech
V páté části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje budeme pokračovat v popisu použití anonymních funkcí, které jsou implementovány v rámci projektu Lambda. Mezi typické možnosti využití anonymních funkcí patří implementace komparátorů, filtrů a podobně.

