0xDEADBEEF

[RSS]
««« »»»

Syntéza datových struktur a programů

21. 6. 2018

Ge­ne­ra­li­zed data structure syn­thesis stojí za pře­čtení. Pre­zen­tuje ná­stroj Cozy, který – jak říká název článku – umí syn­te­ti­zo­vat datové struk­tury ope­race nad nimi, které jsou nejen ko­rektní, ale také efek­tivní. Nechci opa­ko­vat, co už shrnul Adrian Colyer, pře­čtěte si to, teď hned, je to dů­le­žité pro ná­sle­du­jící od­stavce.

Jde o per­fektní do­pl­něk k Out of the Tar Pit a možná chy­bě­jící článek nutný k tomu, aby vize na­črt­nutá v tar pit paperu (pokud ne­chcete číst, tady jsem ho kdysi shrnul).

Autor tar pit paperu mluví o esen­ci­ální a ve­d­lejší kom­ple­xitě, při­čemž ta esen­ci­ální je ta dů­le­žitá, jde o nutnou slo­ži­tost pro­blému nebo domény, chcete-li. Ve­d­lejší kom­ple­xita nemá žádnou hod­notu pro uži­va­tele, jen je někdy nutná pro do­sa­žení efek­ti­vity a do­sta­teč­ného výkonu. Esenci musíme nějak vy­já­d­řit a ve­d­lejší slo­ži­tostí bychom se měli vy­hnout.

Na tom není nic kon­tro­verz­ního, ale teď jak toho do­sáh­nout. V tar pit paperu se mluví o lo­gic­kém a funk­ci­o­nál­ním pro­gra­mo­vání, de­kla­ra­tiv­ním stylu a re­lač­ním da­to­vém modelu.

A tady do hry vstu­puje Cozy – na­de­fi­nuji ne­zbytný stav bez ohledu na efek­tivní re­pre­zen­taci, tak jak o něm pře­mýš­lejí uži­va­telé, de­kla­ra­tivně popíšu ope­race nad ním, jako v tar pit utopii a Cozy, nebo nějaký jeho po­kro­čilý po­to­mek, z této kostry syn­te­ti­zuje její efek­tiv­nější verzi – efek­tivní datové struk­tury spe­ci­a­li­zo­vané pro dané ope­race a efek­tivní kód. Z esen­ci­ál­ního popisu vy­ge­ne­ruje všechnu ve­d­lejší kom­ple­xitu a od­vo­zený stav.


Heu­ris­tiky a stra­te­gie pro­hle­dá­vání sta­vo­vého pro­storu, můžou být po­cho­pi­telně roz­ší­řeny stro­jo­vým učením.

píše k47 (@kaja47, k47)