Epizoda
Hlavní příspěvek – Martin Odersky: Reflexe a kompilátory
with Martin Odersky
Reflexe a kompilátory dělají tantalizaci podobných věcí. V běžném proudu jsou však staticky napsané jazyky, které byly oba volně svázány, a obecně sdílet velmi málo kódu. V této přednášce prozkoumám, co se stane, když se člověk snaží překonat jejich oddělení.
První polovina talku řeší výzvu, jak můžou knihovny reflexe sdílet základní datové struktury a algoritmy s kompilátorem jazyka, aniž by do standardního rozhraní API knihovny unikly interní interní funkce kompilátoru. Ukázalo se, že systém komponent založený na abstraktních typech a typech závislých na cestě je dobrým nástrojem k vyřešení tohoto úkolu. Vysvětlím, jak se "vzor více dortů" může použít plodně, aby se zpřístupnil správný druh informací.
Druhá polovina přednášky zkoumá, co může dělat, když silný zrcadlový odraz je standardní nástroj. Konkrétně může samotný kompilátor používat reflexi, což vede k určitému systému maker nízké úrovně, která přepisují stromy syntaxe. Jednou z hlavních vlastností těchto maker je, že můžou vyjádřit přípravu přepsáním stromu v jedné fázi do kódu, který vytvoří stejný strom v další fázi. Příprava nám umožňuje implementovat reifikace typů a obecné funkce podobné LINQ. Kromě toho je možné přípravu použít i v samotném systému maker, což má za následek, že jednoduchý systém maker nízké úrovně může vytvořit vysoceúrovňovou hygienu bez jakéhokoli dalšího úsilí z jazyka nebo kompilátoru.
Reflexe a kompilátory dělají tantalizaci podobných věcí. V běžném proudu jsou však staticky napsané jazyky, které byly oba volně svázány, a obecně sdílet velmi málo kódu. V této přednášce prozkoumám, co se stane, když se člověk snaží překonat jejich oddělení.
První polovina talku řeší výzvu, jak můžou knihovny reflexe sdílet základní datové struktury a algoritmy s kompilátorem jazyka, aniž by do standardního rozhraní API knihovny unikly interní interní funkce kompilátoru. Ukázalo se, že systém komponent založený na abstraktních typech a typech závislých na cestě je dobrým nástrojem k vyřešení tohoto úkolu. Vysvětlím, jak se "vzor více dortů" může použít plodně, aby se zpřístupnil správný druh informací.
Druhá polovina přednášky zkoumá, co může dělat, když silný zrcadlový odraz je standardní nástroj. Konkrétně může samotný kompilátor používat reflexi, což vede k určitému systému maker nízké úrovně, která přepisují stromy syntaxe. Jednou z hlavních vlastností těchto maker je, že můžou vyjádřit přípravu přepsáním stromu v jedné fázi do kódu, který vytvoří stejný strom v další fázi. Příprava nám umožňuje implementovat reifikace typů a obecné funkce podobné LINQ. Kromě toho je možné přípravu použít i v samotném systému maker, což má za následek, že jednoduchý systém maker nízké úrovně může vytvořit vysoceúrovňovou hygienu bez jakéhokoli dalšího úsilí z jazyka nebo kompilátoru.
Chcete se podělit o svůj názor? Tady můžete odeslat problém.