Forth (програмски језик)
програмски језик From Wikipedia, the free encyclopedia
Remove ads
Форт (енгл. ) је програмски језик заснован на стеку. Такође, то је и назив за интерактивно окружење које омогућава развој и извршавање програма писаних у Форту. Форт се лако проширује. Користи обрнуту пољску нотацију. Не поседује проверу типова података. Погодан је за контролу процеса који се одвијају у реалном времену као што је, на пример, управљање телескопима, што му је једна од првобитних намена.[1]
Творац програмског језика Форт је Чарлс Мур.[2]
Remove ads
Здраво свете
За испис поруке „Здраво свете!", у интерактивном начину рада, може да послужи следећи код:
." Здраво свете!"
Испис можемо да „улепшамо「 издвајајући га у посебан ред на следећи начин:
CR ." Здраво свете!" CR
Можемо да дефинишемо нову реч Поздрав
која ће да уради исто:
: Поздрав CR ." Здраво свете!" CR ;
Синтакса
Форт има једноставну синтаксу. Било каква група речи, које су међу собом раздвојене празнином, може да представља програм. На пример: Сипај~воду додај~поврће кувај посоли послужи~топло могао би да буде исправан Форт програм.
Речи могу да садрже све расположиве знакове. На пример, следеће речи су уобичајене у програмском језику Форт: ." + #S DROP @ ROT. *
Речи
Писање програма, у програмском језику Форт, најчешће се састоји из писања кратих потпрограма који се повезују у веће целине. Сваки потпрограм се придружује једној речи. Овакав пар (реч, потпрограм) обично се једноставно зове: реч.
Стек
Код већине програмских језика код којих постоји могућност рекурзивног позивања процедура или функција генерише се стек током извршавања програма. У програмским језицима као што су Модула-2 или C програмер не манипулише директно овим стеком. Он служи да би се сачувале повратне адресе код позива процедура или функција, као и за чување неких других привремених података као што су локалне променљиве и стварни параметри (или њихове референце) предати при позиву. Форт такође поседује стек на коме чува повратне адресе потпрограма али поседује још један стек. Програмер директно приступа овом другом стеку. Користи га обично да би предао параметре, сачувао повратну вредност, или за смештање привремених података. Зато се овај стек понекад зове параметарски стек или стек података, али најчешће само стек. Први поменути стек са повратним адресама обично се назива повратни стек (енгл. или енгл. ).
Примери рада са стеком
Програмирајући у Форту програмер готово да не може да избегне да директно не користи параметарски стек. Ако у Форту напишемо:
3 47 -2 8
извршење овога кода довешће до тога да на стеку имамо четири броја: 3, 47, -2 и 8. Прво ће на врх стека да буде постављен број 3, затим 47, који ће тројку да потисне испод себе. Потом -2 долази на врх и на крају 8. По извршењу, садржај стека може да се представи следећом табелом:
Форт реч drop
уклања број са врха стека. По извршењу:
drop
стек изгледа овако:
Ако желимо да заменимо број на врху стека са оним одмах испод њега можемо да употребимо Форт реч swap
:
swap
добијамо следеће стање на стеку:
Можемо да употребимо Форт реч .
(тачка) да испишемо број са врха стека. Ова реч у истом реду исписује број (и ok
). Затим број уклања са стека:
. 47 ok
Потом стек изгледа овако:
Remove ads
Рачун
Један број речи које су стандардно дефинисане у програмском језику Форт везане су за рачун. То је у првом реду рачун са целим бројевима.
Ако у Форту напишете:
3 5 + .
интерпретатор ће да одговори (у истом реду):
8 ok
Изрази везани за рачун у Форту се формирају коришћењем обрнуте пољске нотације, односно у постфикс запису. За разлику од, у матеметици уобичајеног, ификсног записа овде се прво наводе операнди па тек затим оператор.
Ако би хтели да у Форту нађемо разлику бројева седам и четири можемо да напишемо следеће:
7 4 - .
Извршење овог кода доводи до тога да се прво на стек поставе бројеви 7 и 4. Потом се врши њихово одузимање. Бројеви 7 и 4 се уклањају са стека и место њих се на врх стека уписује резултат (број 3). На крају, реч тачка исписује број са врха стека и уклања га (са стека).
Превођење сложенијих израза у Форт нотацију може да представља проблем почетницима. На пример вредност следећег математичког израза: (7 - 2)•(4 + 2) може да се израчуна на следећи начин:
7 2 - 4 2 + * .
Remove ads
Референце
Додатна литература
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads