Кіріспе

Стек машина модельіне негізделген бағдарламалау парадигмасы. Стекке бағдарланған бағдарламалау – деректерді өңдеу және/немесе параметрлерді беру үшін стекке (немесе бірнеше стекке) сүйенетін бағдарламалау парадигмасы. Forth, RPL және PostScript сияқты бірнеше бағдарламалау тілдері осы сипаттамаға сай келеді. Стекке бағдарланған бағдарламалау тілдері бір немесе бірнеше стектерде жұмыс істейді, олардың әрқайсысы әртүрлі мақсатта қолданылуы мүмкін. Басқа бағдарламалау тілдеріндегі бағдарламалау құрылымдарын стекке бағдарланған жүйеде пайдалану үшін өзгерту қажет. Көптеген стекке бағдарланған тілдер постфикс немесе кері Польша нотациясында жұмыс істейді. Команданың барлық аргументтері немесе параметрлері сол командадан бұрын жазылады. Мысалы, постфикс нотациясында 2, 3, көбейту деп жазылады, ал көбейту, 2, 3 (префикс немесе Польша нотациясы) немесе 2 көбейту 3 (инфикс нотациясы) деп жазылмайды. Forth, Factor, RPL, PostScript, BibTeX стильдік жобалау тілі және көптеген ассемблерлер осы парадигмаға сәйкес келеді. Стекке негізделген алгоритмдер деректерді пайдаланады, стек үстінен бір деректерді алып, нәтижені стек үстіне қайтарады. Стекпен манипуляциялау операторларының болуы, стекке деректерді өңдеуге мүмкіндік береді. Оператордың әсерін көрсету үшін, оператордан бұрын және кейін стек үстіндегі мәнді көрсететін түсініктеме қолданылады. Бұл стек эффект диаграммасы деп аталады. PostScript стектері қосымша мақсаттар үшін бөлек стектерді қарастырады, соның ішінде айнымалылар, сөздіктер, процедуралар, кейбір процедуралардың құрылысы, басқару және ағын. Тіл моделін талдау, өрнектер мен бағдарламаларды қарапайым және теориялық тұрғыдан түсіндіруге мүмкіндік береді.

Стейкпен жұмыс істеу

Стек – стекке бағытталған тілде деректерді өңдеудің негізгі құралы болғандықтан, мұндай тілдер көбінесе стекті манипуляциялау операторларын ұсынады. Көбінесе ұсынылатындары: стектің үстіндегі элементті көшіру үшін `dup`, стектің үстіндегі элементтерді ауыстыру үшін `exch` (немесе `swap`) (бірінші екінші, екінші бірінші болады), стектегі немесе стектің бір бөлігіндегі элементтерді циклдық түрде жылжыту үшін `roll`, стектің үстіндегі элементті жою үшін `pop` (немесе `drop`) (жабу әрекеті тікелей түсініледі) және басқалары. Бұлар процедураларды зерттеуде маңызды рөл атқарады.

PostScript стектері

PostScript және кейбір басқа стек тілдерінің әртүрлі мақсаттар үшін тағы да бөлек стектері бар.

Тіл моделінің талдауы

Стекке бағытталған тілде ұсынылған қарапайым модель өрнектер мен бағдарламаларды оңай түсіндіруге және теориялық тұрғыдан әлдеқайда жылдам бағалауға мүмкіндік береді, себебі синтаксистік талдау қажет емес, тек лексикалық талдау ғана қажет. Мұндай бағдарламалардың жазылу әдісі машиналарға түсіндіруді жеңілдетеді, сондықтан PostScript принтерлерге оны пайдалану үшін өте ыңғайлы. Дегенмен, PostScript бағдарламаларын жазудың сәл жасанды тәсілі PostScript сияқты стекке бағытталған тілдерді түсінуге алғашқы кедергі болуы мүмкін. Ішкі және басқа анықтамаларды қайта жабу арқылы көлеңкелеу мүмкіндігі бағдарламаларды түзетуді қиындатуы мүмкін, ал осы мүмкіндікті жауапкершіліксіз пайдалану болжамсыз мінез-құлыққа әкелуі мүмкін, бірақ бұл кейбір функцияларды қатты жеңілдетеді. Мысалы, PostScript-те showpage операторын бетке белгілі бір стильді қолдану үшін өзгертуге болады, стильді жасау үшін операторды қайта анықтаудың немесе кодты қайталаудың қажеті жоқ.