Superkombinátor

Superkombinátor  je objekt, který je neměnný vzhledem k výpočetnímu prostředí a vzniká dynamicky během provádění programu. Superkombinátory zakládají čistě objektový programovací systém zabudovaný do kombinatorické logiky . To přímo uspokojuje potřebu denotačního výpočtu instrukcí v programovacích jazycích, kdy je funkční význam programu vyjádřen objekty. Je nezbytné, aby výpočet začínal nějakou dříve známou sadou instrukcí. V procesu výpočtu hodnoty programu jsou dynamicky generovány instrukce, které jsou předem neznámé, ale po cestě nezbytné, které jsou navíc fixovány v programovacím systému.

Definice superkombinátoru

Superkombinátor  je matematický výraz, ve kterém jsou všechny proměnné související a nezávislé na jiných výrazech. Může to být konstanta nebo kombinátor, ve kterém jsou všechny podvýrazy kombinátory.

Formálně je lambda výraz S považován za superkombinátor arity n, pokud má tvar λx1.λx2…λxn.E (kde n ≥ 0, takže symboly „λ“ jsou nepovinné) a výraz E není lambda abstrakce , ale jakákoliv abstrakce v E je superkombinátor [1] .

Přístupy k použití superkombinátorů

Existují dva přístupy k použití superkombinátorů k implementaci aplikačních programovacích jazyků. U prvního z nich je program sestaven pomocí pevné sady superkombinátorů (v neoptimalizované verzi - S , K , I ) s předem známými definicemi. Ve druhém přístupu jsou definice superkombinátorů generovány samotným programem během kompilace.

Viz také

Odkazy

  1. Peyton Jones S.L. Implementace funkcionálních programovacích jazyků. - NY: Prentice Hall International, 1987. - 445~s. [jeden]

Literatura