<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://denik.xelfi.cz/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://denik.xelfi.cz/index.php?action=history&amp;feed=atom&amp;title=Dynamick%C3%BDP%C5%99ekladPrakticky</id>
		<title>DynamickýPřekladPrakticky - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://denik.xelfi.cz/index.php?action=history&amp;feed=atom&amp;title=Dynamick%C3%BDP%C5%99ekladPrakticky"/>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;action=history"/>
		<updated>2026-04-29T10:07:37Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.15.3</generator>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=967&amp;oldid=prev</id>
		<title>141.143.193.72:&amp;#32;/* X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=967&amp;oldid=prev"/>
				<updated>2021-07-02T16:51:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 2. 7. 2021, 16:51&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V [https://stream.cuni.cz/cs/Detail/13652/12041 desátém pokračování] se Štěpán rozhovořil o zajímavém použítí Truffle interop: o volání do Céčkových knihoven z Javy.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V [https://stream.cuni.cz/cs/Detail/13652/12041 desátém pokračování] se Štěpán rozhovořil o zajímavém použítí Truffle interop: o volání do Céčkových knihoven z Javy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Přednáška navazovala na tu předchozí o re-implementaci skutečných jazyků. Většina z nich poskytuje API pro volání C runtin a pro volání zpět z C. Na jednoduchém demo jazyce jsme si ukázali jak lze C API implementovat pomocí Truffle NFI (native function interface) a Graal LLVM (code name Sulong).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XI. Vygenerujte si EXáč z vaší Java apky ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XI. Vygenerujte si EXáč z vaší Java apky ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>141.143.193.72</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=966&amp;oldid=prev</id>
		<title>141.143.193.72:&amp;#32;/* IX. Štěpán Šindelář: Reimplementace skutečných jazyků */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=966&amp;oldid=prev"/>
				<updated>2021-07-02T16:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;IX. Štěpán Šindelář: Reimplementace skutečných jazyků&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 2. 7. 2021, 16:45&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Opakování praktických aspektů toho jak integrovat vlastní programovací jazyk do GraalVM a Truffle ekosystému: launchery - nativni vs. JVM mód, Java embedding - více kontektů a sdílený engine (AST).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Opakování praktických aspektů toho jak integrovat vlastní programovací jazyk do GraalVM a Truffle ekosystému: launchery - nativni vs. JVM mód, Java embedding - více kontektů a sdílený engine (AST).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V čem je re-implementace existujících programovacích jazyků složitá: chybějící/neexistující dokumentace, nejasný kontrakt (&amp;quot;observable surface&amp;quot; jazyka) - například je chování součástí kontraktu?, problematický design C API pro nativní extenze, který odkrývá příliš mnoho implementačních detailů. Demonstrace těchto problémů na Pythonu a R (GraalPython a R). Povídání o tom jak ve FastR optimalizujeme lazy evaluaci argumentů v Rku.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V čem je re-implementace existujících programovacích jazyků složitá: chybějící/neexistující dokumentace, nejasný kontrakt (&amp;quot;observable surface&amp;quot; jazyka) - například je chování &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;garbage collectoru &lt;/ins&gt;součástí kontraktu?, problematický design C API pro nativní extenze, který odkrývá příliš mnoho implementačních detailů. Demonstrace těchto problémů na Pythonu a R (GraalPython a R). Povídání o tom jak ve FastR optimalizujeme lazy evaluaci argumentů v Rku.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>141.143.193.72</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=965&amp;oldid=prev</id>
		<title>141.143.193.72:&amp;#32;/* IX. Štěpán Šindelář: Reimplementace skutečných jazyků */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=965&amp;oldid=prev"/>
				<updated>2021-07-02T16:39:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;IX. Štěpán Šindelář: Reimplementace skutečných jazyků&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 2. 7. 2021, 16:39&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13512/12041 Devátého pokračování] se ujal Štěpán Šindelář a rozhovořil se o tom, jak pomocí Trufflu naimplementovat '''Python''' a '''R'''ko.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13512/12041 Devátého pokračování] se ujal Štěpán Šindelář a rozhovořil se o tom, jak pomocí Trufflu naimplementovat '''Python''' a '''R'''ko.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Opakování praktických aspektů toho jak integrovat vlastní programovací jazyk do GraalVM a Truffle ekosystému: launchery - nativni vs. JVM mód, Java embedding - více kontektů a sdílený engine (AST).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;V čem je re-implementace existujících programovacích jazyků složitá: chybějící/neexistující dokumentace, nejasný kontrakt (&amp;quot;observable surface&amp;quot; jazyka) - například je chování součástí kontraktu?, problematický design C API pro nativní extenze, který odkrývá příliš mnoho implementačních detailů. Demonstrace těchto problémů na Pythonu a R (GraalPython a R). Povídání o tom jak ve FastR optimalizujeme lazy evaluaci argumentů v Rku.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== X. Štěpán Šindelář: Volání nativních knihoven z Javy pomocí Truffle NFI ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>141.143.193.72</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=964&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* II. Jak fungují moderní překladače? */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=964&amp;oldid=prev"/>
				<updated>2021-06-18T14:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;II. Jak fungují moderní překladače?&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 18. 6. 2021, 14:07&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== II. Jak fungují moderní překladače? ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== II. Jak fungují moderní překladače? ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V [https://stream.cuni.cz/cs/Detail/12042/12041 záznamu druhé přednášky] si nejprve dokončíme úvod z minula a povíme si, jak se ''zbavit Javovské virtuální mašiny''! Dynamický překlad je skvělý, ale vyžaduje spoustu metadat. Naštěstí můžeme [[GraalVM]] využít na překlad ''Java kódu'' do '''EXáče'''! To je důležitý střípek v tom jak [[GraalVM]] ekosystém funguje. Ale protože nás primárně bude zajímat překlad dynamických jazyků, tak si hned také představíme základní trik, který z dynamických jazyků dělá něco, z čeho lze vygenerovat efektivní strojový kód. Pořádně to prodiskutujeme a pak...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V [https://stream.cuni.cz/cs/Detail/12042/12041 záznamu druhé přednášky] si nejprve dokončíme úvod z minula a povíme si, jak se ''zbavit Javovské virtuální mašiny''! Dynamický překlad je skvělý, ale vyžaduje spoustu metadat. Naštěstí můžeme [[GraalVM]] využít na překlad ''Java kódu'' do '''EXáče'''! To je důležitý střípek v tom&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;jak [[GraalVM]] ekosystém funguje. Ale protože nás primárně bude zajímat překlad dynamických jazyků, tak si hned také představíme základní trik, který z dynamických jazyků dělá něco, z čeho lze vygenerovat efektivní strojový kód. Pořádně to prodiskutujeme a pak...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od 35-té minuty následuje skutečné povídání o moderních překladačích: Jak vlastně překládat Javu, Céčko a jiné staticky typované jazyky? Pro osvěžení, co to vlastně&amp;nbsp; překladače jsou a jak fungují, nám výborně poslouží [https://chrisseaton.com/truffleruby/jokerconf17/ přednáška kolegy Chrise Seatona]. Opravdu je lepší psát překladač v C++ než v Javě? Chcete psát překladač a nebo vás baví psát vlastní garbage collector!? Nevynalézejte znovu kolo a raději si vyklonujte [https://github.com/oracle/graal/ graal repozitoř]. Vaše oblíbené IDE (ať [http://netbeans.org NetBeans] nebo [https://marketplace.visualstudio.com/items?itemName=oracle-labs-graalvm.graalvm-pack VSCode] či [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ Ideal Graph Visualizer] a nebo i jiné) ty zdrojáky bez problémů otevře. Pak už můžete přidávat breakpointy do zdrojáků překladače, spouštět si vaše programy a koukat, jak se překládají. Můžete si i změnit sémantiku překladu, vypsat si ladící hlášky či něco podobného. Jak vaše aplikace, tak váš překladač jsou v Javě a ve vašem vývojovém prostředí se chovají úplně stejně. Avšak ne jen laděním je živ překládající inženýr! My milujeme grafy z překladače, které radostně zkoumáme v [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ IGV]. Stahujte, zkoumejte jednotlivé fáze překladu a bezostyšně přeskakujte mezi IR grafy různých fází, vašimi zdrojáky, zdrojáky překladače. Bez [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ IGV] ani ránu!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od 35-té minuty následuje skutečné povídání o moderních překladačích: Jak vlastně překládat Javu, Céčko a jiné staticky typované jazyky? Pro osvěžení, co to vlastně&amp;nbsp; překladače jsou a jak fungují, nám výborně poslouží [https://chrisseaton.com/truffleruby/jokerconf17/ přednáška kolegy Chrise Seatona]. Opravdu je lepší psát překladač v C++ než v Javě? Chcete psát překladač a nebo vás baví psát vlastní garbage collector!? Nevynalézejte znovu kolo a raději si vyklonujte [https://github.com/oracle/graal/ graal repozitoř]. Vaše oblíbené IDE (ať [http://netbeans.org NetBeans] nebo [https://marketplace.visualstudio.com/items?itemName=oracle-labs-graalvm.graalvm-pack VSCode] či [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ Ideal Graph Visualizer] a nebo i jiné) ty zdrojáky bez problémů otevře. Pak už můžete přidávat breakpointy do zdrojáků překladače, spouštět si vaše programy a koukat, jak se překládají. Můžete si i změnit sémantiku překladu, vypsat si ladící hlášky či něco podobného. Jak vaše aplikace, tak váš překladač jsou v Javě a ve vašem vývojovém prostředí se chovají úplně stejně. Avšak ne jen laděním je živ překládající inženýr! My milujeme grafy z překladače, které radostně zkoumáme v [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ IGV]. Stahujte, zkoumejte jednotlivé fáze překladu a bezostyšně přeskakujte mezi IR grafy různých fází, vašimi zdrojáky, zdrojáky překladače. Bez [https://docs.oracle.com/en/graalvm/enterprise/21/docs/tools/igv/ IGV] ani ránu!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=963&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* I. Představujeme nejrychlejší univerzální virtuální stroj */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=963&amp;oldid=prev"/>
				<updated>2021-06-18T14:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;I. Představujeme nejrychlejší univerzální virtuální stroj&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 18. 6. 2021, 14:05&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== I. Představujeme nejrychlejší univerzální virtuální stroj ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== I. Představujeme nejrychlejší univerzální virtuální stroj ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/0/12041 Záznam úvodní přednášky]. Začínáme historií [[NetBeans]], protože se k přednášce na [[MatFyz]]u určitě hodí. Nemůže chybět zmínka o návrhu [[API]] a mé knížce [http://practical.apidesign.org Practical API Design], aby bylo zřejmé, proč se tomuto kurzu říká ''Practical Dynamic Compilation''! Následuje takové to tradiční povídání o tom, co [[GraalVM]] umí a jak je snadné a jednoduché to nainstalovat (pomocí utilitky '''gu'''), použít a jak strašně rychle pak lze počítat [https://github.com/jtulach/sieve &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Eratesthénovo &lt;/del&gt;síto] v libovolném jazyce. Není to nic převratného, ale pokud jste to ještě někdo neviděl, tak je to vhodná upoutávka k záznamům dalších lekcí.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/0/12041 Záznam úvodní přednášky]. Začínáme historií [[NetBeans]], protože se k přednášce na [[MatFyz]]u určitě hodí. Nemůže chybět zmínka o návrhu [[API]] a mé knížce [http://practical.apidesign.org Practical API Design], aby bylo zřejmé, proč se tomuto kurzu říká ''Practical Dynamic Compilation''! Následuje takové to tradiční povídání o tom, co [[GraalVM]] umí a jak je snadné a jednoduché to nainstalovat (pomocí utilitky '''gu'''), použít a jak strašně rychle pak lze počítat [https://github.com/jtulach/sieve &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Eratosthénovo &lt;/ins&gt;síto] v libovolném jazyce. Není to nic převratného, ale pokud jste to ještě někdo neviděl, tak je to vhodná upoutávka k záznamům dalších lekcí.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Je naše [[GraalVM]] implementace '''Ruby''' 10-krát rychlejší než jakákoli jiná? Jak dlouho může trvat vypsat všechna prvočísla? Co je vstupem a co je výstupem [[GraalVM|Graal]] překladače? Jakým nástrojem můžeme zkoumat, co [[GraalVM|Graal]] překladač vlastně uvnitř dělá? Jak napsat vlastní jazyk? Jak vložit implementaci existujícího dynamického jazyka do vlastního Java programu? Dá se to potom také ladit? V [[NetBeans]]? Ve Chrome Dev Tools? Má cenu psát interpretr Céčka?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Je naše [[GraalVM]] implementace '''Ruby''' 10-krát rychlejší než jakákoli jiná? Jak dlouho může trvat vypsat všechna prvočísla? Co je vstupem a co je výstupem [[GraalVM|Graal]] překladače? Jakým nástrojem můžeme zkoumat, co [[GraalVM|Graal]] překladač vlastně uvnitř dělá? Jak napsat vlastní jazyk? Jak vložit implementaci existujícího dynamického jazyka do vlastního Java programu? Dá se to potom také ladit? V [[NetBeans]]? Ve Chrome Dev Tools? Má cenu psát interpretr Céčka?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=962&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* XI. Vygenerujte si EXáč z vaší Java apky */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=962&amp;oldid=prev"/>
				<updated>2021-06-18T01:46:54Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;XI. Vygenerujte si EXáč z vaší Java apky&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 18. 6. 2021, 01:46&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XI. Vygenerujte si EXáč z vaší Java apky ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XI. Vygenerujte si EXáč z vaší Java apky ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13766/12041 Jedenáctý příběh] je věnován ukázce toho, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jaký &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Javě &lt;/del&gt;skvělý ''systémový jazyk''. Nejprve si vychválíme jazyk Go a podíváme se na to, co by Java ještě potřebovala, aby byla stejně dobrá. Ukážeme si jak takovou &amp;quot;native image&amp;quot; pomocí NetBeans ladit. To by jako základní ukázka mohlo stačit.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13766/12041 Jedenáctý příběh] je věnován ukázce toho, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jaká &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Java &lt;/ins&gt;skvělý ''systémový jazyk''. Nejprve si vychválíme jazyk Go a podíváme se na to, co by Java ještě potřebovala, aby byla stejně dobrá. Ukážeme si jak takovou &amp;quot;native image&amp;quot; pomocí NetBeans ladit. To by jako základní ukázka mohlo stačit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od čtyřicáté minuty se zaměříme na to, jak napsat Java JNI metody (ty, které volají do systému) v Javě. Ano, opět Java nad Javou. Díky tomu, že si část naší Java aplikace přeložíme do nativní knihovny, tak pak můžeme efektivněji pracovat s daty z jiných Céčkových knihoven.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od čtyřicáté minuty se zaměříme na to, jak napsat Java JNI metody (ty, které volají do systému) v Javě. Ano, opět Java nad Javou. Díky tomu, že si část naší Java aplikace přeložíme do nativní knihovny, tak pak můžeme efektivněji pracovat s daty z jiných Céčkových knihoven.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=960&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* VIII. Domluvte se mezi jazyky &amp; vašimi datovými strukturami */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=960&amp;oldid=prev"/>
				<updated>2021-06-17T15:26:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;VIII. Domluvte se mezi jazyky &amp;amp; vašimi datovými strukturami&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 17. 6. 2021, 15:26&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Nakonec si ukážeme, jak opravdu zaregistrovat implementaci vašeho jazyka. Tedy podědit od '''TruffleLanguage''' a použít '''@Registration''' anotaci. Pak již lze používat obecné '''org.graalvm.polyglot''' API a komunikovat s naším jazykem, tak jako s každým jiným Trufflím jazykem.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Nakonec si ukážeme, jak opravdu zaregistrovat implementaci vašeho jazyka. Tedy podědit od '''TruffleLanguage''' a použít '''@Registration''' anotaci. Pak již lze používat obecné '''org.graalvm.polyglot''' API a komunikovat s naším jazykem, tak jako s každým jiným Trufflím jazykem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== VIII. Domluvte se mezi jazyky &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;amp; &lt;/del&gt;vašimi datovými strukturami ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== VIII. Domluvte se mezi jazyky &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;vašimi datovými strukturami ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13019/12041 Osmé pokračování] našeho kurzu se věnuje interoperabilitě mezi jednotlivými Truffle jazyky. A nejen mezi jazyky. Také si ukážeme, jak vystavit vaši vlastní datovou strukturu a nechat ji efektivně zpracovávat pomocí libovolného Trufflího jazyka. Není to ani moc práce a funguje to skvěle a rychle. Hlavně si kvůli něčemu takovému nepište vlastní jazyk!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[https://stream.cuni.cz/cs/Detail/13019/12041 Osmé pokračování] našeho kurzu se věnuje interoperabilitě mezi jednotlivými Truffle jazyky. A nejen mezi jazyky. Také si ukážeme, jak vystavit vaši vlastní datovou strukturu a nechat ji efektivně zpracovávat pomocí libovolného Trufflího jazyka. Není to ani moc práce a funguje to skvěle a rychle. Hlavně si kvůli něčemu takovému nepište vlastní jazyk!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=959&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* XIII. Debugger, profiler atd. pro každý jazyk */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=959&amp;oldid=prev"/>
				<updated>2021-06-17T15:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;XIII. Debugger, profiler atd. pro každý jazyk&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 17. 6. 2021, 15:26&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 86:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V šedesáté minutě nastupuje Tomáš Zezula a rozpovídá se o ''izolátech'' - oddělených paměťových prostorech v jednom procesu.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;V šedesáté minutě nastupuje Tomáš Zezula a rozpovídá se o ''izolátech'' - oddělených paměťových prostorech v jednom procesu.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XIII. Debugger, profiler &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;atd&lt;/del&gt;. pro každý jazyk ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XIII. Debugger, profiler &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a spol&lt;/ins&gt;. pro každý jazyk ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Motto [https://stream.cuni.cz/cs/Detail/14087/12041 třináctého pokračování] je: hlavně neztrácejte čas psaním debuggeru! A profileru! A nástroje na code coverage! A vůbec. Prostě si napište vlastní jazyk, přidejte pár metadat a GraalVM již všechny tyto nástroje dodá sama. Ať už to má být debugger ve VSCode, v NetBeans či v Chrome prohlížeči.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Motto [https://stream.cuni.cz/cs/Detail/14087/12041 třináctého pokračování] je: hlavně neztrácejte čas psaním debuggeru! A profileru! A nástroje na code coverage! A vůbec. Prostě si napište vlastní jazyk, přidejte pár metadat a GraalVM již všechny tyto nástroje dodá sama. Ať už to má být debugger ve VSCode, v NetBeans či v Chrome prohlížeči.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=958&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* XIV: GraalVM Insight a jak přispívat do projektů */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=958&amp;oldid=prev"/>
				<updated>2021-06-17T15:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;XIV: GraalVM Insight a jak přispívat do projektů&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 17. 6. 2021, 15:25&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 98:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ve [https://stream.cuni.cz/cs/Detail/14142/12041 čtrnácté části] pojďme nejprve dokončit povídání o [https://github.com/oracle/graal/blob/1afe68c64d25b4b5bd2bd150afd760bc39b799ee/tools/docs/Insight.md GraalVM Insight]u, který spojuje dvě unikátní vlastnosti [[GraalVM]]: interop a instrumentaci.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ve [https://stream.cuni.cz/cs/Detail/14142/12041 čtrnácté části] pojďme nejprve dokončit povídání o [https://github.com/oracle/graal/blob/1afe68c64d25b4b5bd2bd150afd760bc39b799ee/tools/docs/Insight.md GraalVM Insight]u, který spojuje dvě unikátní vlastnosti [[GraalVM]]: interop a instrumentaci.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Napište si dynamickou podmínku do svého programu a v kritické situaci vygenerujte '''.hprof''' soubor - snímek paměti, zásobníku, atd. Takový soubor můžete analyzovat ve VisualVM, ale také jej lze zpracovat pomocí dynamických jazyků. A nejen to, také jej lze přehrát v libovolném debuggeru. Ať žije post-mortem ladění!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Napište si dynamickou podmínku do svého programu a v kritické situaci vygenerujte '''.hprof''' soubor - snímek paměti, zásobníku, atd. Takový soubor můžete analyzovat ve &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://visualvm.github.io/ &lt;/ins&gt;VisualVM&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;, ale také jej lze zpracovat pomocí dynamických jazyků. A nejen to, také jej lze přehrát v libovolném debuggeru. Ať žije post-mortem ladění!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od pětačtyřicáté minuty pak následuje povídání o tom, jak přispívat do Open Source projektů. Původně jsem tuto přednášku napsal pro NetBeans, ale zda se obecně platná. Doporučuji ji zvláště, budete-li chtít zápočet. Ten se totiž dává za přijatý pull request do nějaké GraalVM repozitoře. Nezapomeňte podepsat OCA - bez toho to nejde.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od pětačtyřicáté minuty pak následuje povídání o tom, jak přispívat do Open Source projektů. Původně jsem tuto přednášku napsal pro NetBeans, ale zda se obecně platná. Doporučuji ji zvláště, budete-li chtít zápočet. Ten se totiž dává za přijatý pull request do nějaké GraalVM repozitoře. Nezapomeňte podepsat &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[https://oca.opensource.oracle.com/ &lt;/ins&gt;OCA&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;] &lt;/ins&gt;- bez toho to nejde.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	<entry>
		<id>http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=957&amp;oldid=prev</id>
		<title>Jst:&amp;#32;/* XIV: GraalVM Insight a jak přispívat do projektů */</title>
		<link rel="alternate" type="text/html" href="http://denik.xelfi.cz/index.php?title=Dynamick%C3%BDP%C5%99ekladPrakticky&amp;diff=957&amp;oldid=prev"/>
				<updated>2021-06-17T15:23:37Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;XIV: GraalVM Insight a jak přispívat do projektů&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 17. 6. 2021, 15:23&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XIV: GraalVM Insight a jak přispívat do projektů ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== XIV: GraalVM Insight a jak přispívat do projektů ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ve [https://stream.cuni.cz/cs/Detail/14142/12041 čtrnácté části] pojďme nejprve dokončit povídání o [https://github.com/oracle/graal/blob/1afe68c64d25b4b5bd2bd150afd760bc39b799ee/tools/docs/Insight.md GraalVM Insight]u, který spojuje dvě unikátní vlastnosti GraalVM: interop a instrumentaci.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ve [https://stream.cuni.cz/cs/Detail/14142/12041 čtrnácté části] pojďme nejprve dokončit povídání o [https://github.com/oracle/graal/blob/1afe68c64d25b4b5bd2bd150afd760bc39b799ee/tools/docs/Insight.md GraalVM Insight]u, který spojuje dvě unikátní vlastnosti &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;GraalVM&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;: interop a instrumentaci.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Napište si dynamickou podmínku do svého programu a v kritické situaci vygenerujte '''.hprof''' soubor - snímek paměti, zásobníku, atd. Takový soubor můžete analyzovat ve VisualVM, ale také jej lze zpracovat pomocí dynamických jazyků. A nejen to, také jej lze přehrát v libovolném debuggeru. Ať žije post-mortem ladění!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Napište si dynamickou podmínku do svého programu a v kritické situaci vygenerujte '''.hprof''' soubor - snímek paměti, zásobníku, atd. Takový soubor můžete analyzovat ve VisualVM, ale také jej lze zpracovat pomocí dynamických jazyků. A nejen to, také jej lze přehrát v libovolném debuggeru. Ať žije post-mortem ladění!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od pětačtyřicáté minuty pak následuje povídání o tom, jak přispívat do Open Source projektů. Původně jsem tuto přednášku napsal pro NetBeans, ale zda se obecně platná. Doporučuji ji zvláště, budete-li chtít zápočet. Ten se totiž dává za přijatý pull request do nějaké GraalVM repozitoře. Nezapomeňte podepsat OCA - bez toho to nejde.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Od pětačtyřicáté minuty pak následuje povídání o tom, jak přispívat do Open Source projektů. Původně jsem tuto přednášku napsal pro NetBeans, ale zda se obecně platná. Doporučuji ji zvláště, budete-li chtít zápočet. Ten se totiž dává za přijatý pull request do nějaké GraalVM repozitoře. Nezapomeňte podepsat OCA - bez toho to nejde.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-29 10:07:37 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jst</name></author>	</entry>

	</feed>