Функционалдық бағдарламалау тілдері: FP, FL және FP84
FP (programming language)
Функционалдық бағдарламалау (FP): лямбда-есептеу негізіндегі қазіргі тілдер, Backus ұсынған FP стилі, FL тілі және бағдарламалау әдістері туралы мақала.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Бағдарламалау тілі
Programming language
FP (функционалдық бағдарламалаудың аббревиатурасы) ақырында қазіргі заманғы функционалдық тілдерге алып келді, олар негізінен лямбда-есептеу парадигмасына негізделген, ал Бэкус үміттене бастаған функциялық деңгей парадигмасына емес. Өзінің Тьюринг сыйлығына ие болған мақаласында Бэкус FP стилінің ерекшелігін былай сипаттады:
FP (short for functional programming) eventually leading to modern functional languages, which are largely founded on the lambda calculus paradigm, and not the function level paradigm Backus had hoped. In his Turing award paper, Backus described how the FP style is different:
цитата|FP жүйесі функционалдық формалар деп аталатын біріктірудің тұрақты жиынтығын пайдалануға негізделген. Осы формалар және қарапайым анықтамалар ғана қолданыстағы функциялардан жаңа функцияларды құру құралы болып табылады; олар айнымалыларды немесе алмастыру ережелерін қолданбайды және бағдарламалардың байланысты алгебрасының операцияларына айналады. FP жүйесінің барлық функциялары бір типті: олар объектілерді объектілерге бейнелейді және әрқашан бір аргумент қабылдайды. 1980 жылдары Бэкус IBM Research-тегі ішкі жоба ретінде FL тілін жасады.
blockquote|An FP system is based on the use of a fixed set of combining forms called functional forms. These, plus simple definitions, are the only means of building new functions from existing ones; they use no variables or substitutions rules, and they become the operations of an associated algebra of programs. All the functions of an FP system are of one type: they map objects onto objects and always take a single argument. In the 1980s Backus created a successor language, FL as an internal project at IBM Research.
FP84
FP84 – бұл FP-нің шексіз тізбектерді, бағдарламашы анықтаған біріктіру формаларын (Бэкустың өзі FL-ге, FP-нің жалғасы ретінде қосқандары сияқты) және жалқау бағалауды қосатын кеңейтімі. FFP-ден, FP-ге қатысты Backus-тің тағы бір жеке өзгерісінен айырмашылығы, FP84 нысандар мен функцияларды нақты ажыратады: яғни, функциялар енді бұрынғы нысандардың тізбектері арқылы көрсетілмейді. FP84 кеңейтімдері FP-нің тізбек құрастыру тек ⊥ емес нысандарға ғана қолданылуы керек деген шектеуін жою арқылы іске асырылады: FP84-де өрнектердің барлық кеңістігі (мағынасы ⊥ болғандарды қоса алғанда) тізбек құрастыру бойынша жабық болады. FP84 семантикасы бағдарламалардың алгебрасында, бағдарламаларды манипуляциялау және талдау үшін қолданылатын функция деңгейіндегі теңдіктер жиынтығында көрініс береді.
FP84 is an extension of FP to include infinite sequences, programmer defined combining forms (analogous to those that Backus himself added to FL, his successor to FP), and lazy evaluation. Unlike FFP, another one of Backus' own variations on FP, FP84 makes a clear distinction between objects and functions: i. e., the latter are no longer represented by sequences of the former. FP84's extensions are accomplished by removing the FP restriction that sequence construction be applied only to non ⊥ objects: in FP84 the entire universe of expressions (including those whose meaning is ⊥) is closed under sequence construction. FP84's semantics are embodied in an underlying algebra of programs, a set of function level equalities that may be used to manipulate and reason about programs.