Конкатенативни програмски језик
From Wikipedia, the free encyclopedia
Remove ads
Concatenative програмски језик је прећутно програмирање рачунарског програмског језика у којој сви изрази означавају функције, а јукстапозиција израза означава сложену функцију.[1] Concatenative програмирање замењује функцију апликација која је уобичајена у другим стиловима програмирања, са сложеном функцијом као подразумеван начин да се изгради подпрограм.
Пример
На пример, низ операција у апликативном језику изгледа овако:
y = foo(x)
z = bar(y)
w = baz(z)
... је написано на concatenative језику као низ функција, без параметара:[2]
foo bar baz
Функције и процедуре написане у concatenative стилу нису програмиране на нивоу вредности, односно они обично не представљају податаке структуре оне раде са експлицитним именима и идентификаторима; уместо тога, оне су програмиране нивоу функција - функција је дефинисана као цевовод, низ операција које користи параметре из имплицитне структуре података која садржи све функције раде, и враћа резултате функција у тој заједничкој структури, тако да се користити следећи оператер.[3]
Комбинација композиције, семантике са синтаксом која огледа овакву семантику чини concatenative језик веома погодан за алгебраикеску манипулацију програма;[4] иако може бити тешко да се напишу математички изрази директно у њих.[5] Соncatenative језици се могу имплементирати на ефикасан начин са стек машином, па су онда заједничка стратегија за програмирање виртуелне машине.[5]
Већи део оригиналног рада на теорији concatenativе језика је извршио Манфред фон Тун.
Remove ads
Особине
Особине concatenative језика су резултат његовог хемијског састава синтаксе и семантике:
- Смањење сваког израза који представља поједностављивање једне функције на другу функцију; никада није неопходно да се баве применом функција на објектима.[6]
- Било који подизраз може бити замењен именом који представља исти подизраз. То се у concatenative заједници назива као факторинг и интензивно се користи да поједностави програме на мање делове.
- Синтакса и семантика concatenative језика чине алгебарску структуру моноида.[7]
- Concatenative језици могу бити добро прилагођени на имплементацију инспирисане линеарне логике у којој се смеће никад не производи.[8]
Remove ads
Имплементација
Први concatenativе програмски језик је Форт, иако је Joy био први језик који се позовао concatenative. Остали concatenative језици су Cat, Enchilada, Factor, Onyx, PostScript, RPL, Staapl, Trith, XY, Kitten, и Om.
Већина постојећих concatenative језика stack-засновани; ово није услов и други модели су предложени.[9][10][11] Concatenative језици се тренутно користе за уграђивање, десктоп и веб програмирање, као циљни језици, као и за истраживачке сврхе.
Већина concatenative језика је динамички откуцано. Једини изузетак је статички откуцан Cat језика.[12]
Види још
- Програмирање на нивоу функција
- Стек-оријентисан програмски језик
- Прећутно програмирање
- Homoiconicity
Референце
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads