Forth: Dīvaina programmēšanas valoda. Lūk, kāpēc jūs to tik un tā varētu mīlēt.

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


Forth ir neparasta valoda. Tas galvenokārt ir tulks, un tam ir komandrindas interfeiss, lai to varētu izmantot reālajā laikā. Bet tam ir arī iespēja ņemt kodu kopas un apkopot to. Tātad tas ir kaut kas hibrīds.

Tādēļ Forth parasti tiek izmantots aparatūrā, kurai nav tradicionālās operētājsistēmas. To plaši izmanto arī mašīnu vadīšanai, kā arī kosmosa izpētē – pat Philae zondei, kas nokrita uz komētas 67P / Churyumov – Gerasimenko.

Vēsture

Forth izstrādāja Šarls Mūrs, sākot ar 1968. gadu, veicot grafikas programmēšanu Mohasco Industries. Bet pirmā pilnīgā Forth ieviešana notika tikai līdz 1971. gadam, kad Mūrs izveidoja atsevišķu sistēmu 11 metru teleskopa vadīšanai ASV Nacionālajā radioastronomijas observatorijā (NRAO)..

Iepriekšējās Fortas versijas bija piesaistījušas programmēšanas sabiedrības uzmanību. Bet šajā brīdī tas kļuva ļoti populārs astronomijas sabiedrībā. Tā 1973. gadā Mūrs nodibināja FORTH, Inc kopā ar saviem NRAO kolēģiem Elizabeti Rēru un Edvardu Konklinu.

Uzņēmums pārnesa programmu uz daudzām dažādām sistēmām. Un FORTH, Inc joprojām ir nozīmīgs uzņēmums, kas nodrošina ar Forth saistītos produktus cilvēkiem, kas darbojas uzņēmējdarbībā, akadēmiskajā vidē un valdībā.

Pārskats par Forth

Forth programmēšanas valodai ir vairāki unikāli aspekti. Šeit mēs apspriedīsim vissvarīgākos.

Forth funkcijas

Forth piedāvā daudzas unikālas iespējas:

  • Interaktīvā programmēšana

  • Apkopotu valodas vārdu “vārdu” paplašinājumu izveidošana

  • Skursteņi un apgrieztā poļu notācija

  • Tiešs savienojums starp lietotāju un aparatūru.

Apgrieztais poļu apzīmējums

Forts veic matemātiskus aprēķinus, izmantojot apgriezto poļu notāciju. Tas ir atkarīgs no numuru saglabāšanas kaudzē.

Apsveriet aprēķinu: 2 + 3. Ceturtajā gadījumā to varētu izdarīt, novietojot 2 uz kaudzītes, pēc tam novietojot 3 uz kaudzītes un pēc tam pievienojot tos. Tas izskatās apmēram šādi: 2 3 +.

Tas šķiet nedaudz dīvaini, bet datoram ir vieglāk parsēt, jo tas ir veids, kā datori faktiski veic aprēķinus. Un, tiklīdz jūs to pieradināt kā kodētāju, tas kļūst diezgan dabiski.

Turklāt iekavas nav vajadzīgas. Apsveriet šādus divus piemērus. (Piezīme: slīpsvītrojums sāk komentēt.)

2 3 + 5 * Tas ir tas pats, kas (2 + 3) * 5
2 3 5 * + Tas ir tas pats, kas 2 + 3 * 5

Pirmajā piemērā 2 tiek uzspiests uz kaudzītes, kam seko 3. Tātad 2 ir otrais kaudzī un 3 ir pirmais. Operators “+” tiek piemērots diviem pirmajiem steka elementiem. Tādējādi šie divi priekšmeti tiek noņemti no kaudzītes un virs kaudzes paliek 5 (2 + 3).

Tad mēs iespiežam 5 uz kaudzītes. Tas nozīmē 5 kaudzes pirmajā un otrajā pozīcijā. Visbeidzot, mēs izmantojam “*” operatoru, kā rezultātā 25 (5 * 5) tiek novietoti kaudzes augšpusē.

Otrajā piemērā kaudzei mēs novietojam 2, 3 un 5 tā, lai 5 būtu pirmajā pozīcijā, 3 otrajā un 2 trešajā. Tad kaudzes augšējos divos elementos (5 * 3) mēs uzliekam “*” operatoru, kā rezultātā 15 kaudzes augšpusē tiek novietoti.

Šajā brīdī 15 ir pirmajā pozīcijā, bet 2 – otrajā. Kad tiek uzlikts operators +, tas atstāj kaudzes augšpusē 17 (15 + 2).

Programmas piemērs

Šī programma ir ļoti vienkārša, taču tā daudz parāda, kas notiek valodā.

: OUTMATH Izvada matemātisku aprēķinu
." Tagad mēs aprēķināsim: (2 + 3) * 5" CR
2 3 + 5 *
." Tas ir vienāds ar: " . CR;

OUTMATH

Pirmais, ko šī programma dara, ir definēt funkciju ar nosaukumu OUTMATH. Līnijas, kas tai seko, ir daļa no funkcijas augšup pa līniju, kas beidzas ar semikolu. Pirmajā rindā tiek izdrukāts teksts “Mēs tagad aprēķināsim: (2 + 3) * 5” un seko tam ar karietes atgriešanos.

Nākamā rinda veic aprēķinu, kuru mēs apspriedām iepriekš, kā rezultātā 25 tiek novietoti kaudzes augšpusē. Funkcijas pēdējā rinda izvada “Tas ir vienāds ar:”, kam seko vērtība kaudzes augšpusē (apzīmēta ar “.”) Un karietes atgriešanās.

Tad mēs vienkārši palaižam funkciju. Tātad, kad programma darbojas, tā izvada:

Tagad mēs aprēķināsim: (2 + 3) * 5
Tas ir vienāds ar: 25

Mācīšanās vērts

Lielākajai daļai programmētāju tas ir jauns domāšanas veids. Bet tas ir pārsteidzoši, cik dabiski tas šķiet, kad sākat ar to strādāt. Šeit ir dažas konsultācijas un grāmatas, kas palīdzēs jums strādāt ar valodu.

Citas konsultācijas

Ir daudz tiešsaistes konsultāciju. Tā kā Forth ir neparasti programmētājiem, kas nav Forth, vienlaikus ir savādi, ka pašreizējiem lietotājiem tas ir pašsaprotami, daudzās pamācībās spīd lietas, kas iesācējiem var mulsināt. Šajās apmācībās nav šīs problēmas.

  • Easy Forth: šī īsā e-grāmata ir lielisks ievads. Vienīgais trūkums ir tas, ka tas nav pārāk liels piemēros. Tāpēc apskatiet dažus no zemāk minētajiem piemēriem.

  • Ceļvedis iesācējiem: tas ir vēl viens labs ievads. Tas ir nedaudz tehniskāks, taču tajā ir vairāk piemēru.

  • Un tā vērts …: tas ir ļoti pamatīgs ievads par Fortu – gandrīz tikpat labs kā grāmata.

Forth grāmatas

Bieži vien ir vieglāk iemācīties jaunu valodu, iegūstot grāmatu, ar kuru jūs varat soli pa solim cauri procesam. Ir daudz labu grāmatu par Fortu, īpaši datētas ar pagājušā gadsimta astoņdesmitajiem gadiem, kad Forts patiešām sāka darbu. Šeit ir labāko un vissvarīgāko kolekcija.

  • Atklājiet Fortu: Fortas valodas apguve un programmēšana (1982), autors Toms Hogans: šis ir labs un kodolīgs ievads Fortas valodā.

  • Sākotnējais ceļš: Leo Brodie ievads Forth valodā un operētājsistēmā iesācējiem un profesionāļiem (1982): šī ir klasika un lielisks veids, kā apgūt Forth. Tas vairs nav drukāts, bet izlietotās kopijas nav grūti atrast par nelielu naudu. Tas ir arī tiešsaistē bez maksas. Advanced Forth programmētāji, iespējams, vēlēsies apskatīt Brodie jaunāko versiju Thinking Forth.

  • Jergena Pintaskes izstrādātā Forth Lite apmācība (2014): šī ir iekurtā balstīta apmācība, kas koncentrējas uz piemēriem.

  • Programmēšana, kas orientēta uz problēmu orientētu valodu: Forth – kā strādā interns (2014), kuru autors ir Čārlzs Mūrs: šī ir Kindle versija, ko sen rakstīja grāmata, kuras veidotājs ir vērts. Tas joprojām sniedz dedzīgu ieskatu valodā, taču tā nav labākā izvēle, ar kuru sākt.

  • Programmas “Forth Programmer’s Handbook” (2007) autori: Elizabete Rather un Edvards Konklins: šī ir divu pārējo Forts pionieru padziļinātāka grāmata par Fortu. Skatīt arī Rather grāmatu Forth Application Techniques (2006).

Citi resursi

  • Forth Interešu grupa: šajā vietnē ir visa veida interesanta informācija, ieskaitot vecos vēsturiskos dokumentus. Diemžēl tajā ir arī daudz pārtrauktu saišu. Bet joprojām ir vērts pārbaudīt.

  • Saites uz četrām programmām: šī ir lieliska reālu programmu, piemēram, izklājlapu un Sudoku mīklu risinātāju, kolekcija.

  • Forth Google grupa: šī ir ļoti aktīva Forth lietotāju grupa, kas jautā un atbild uz jautājumiem.

  • Forth Subreddit: tas nav šausmīgi aktīvs forums, taču tajā joprojām ir zinoši cilvēki.

Īstenošanas ceturksnis

Gadu gaitā ir bijis daudz Forth ieviešanas. Interešu grupai Forth ir gara Forth sastādītāju lapa. Tātad, ja jūsu garāžā notiek kāds PDP-11 iestatījums, par to varat iegūt Forth kompilatoru! Bet modernākām sistēmām šeit ir visizplatītākās iespējas.

bigFORTH

80. gadu vidū Dietrich Weineck, Georg Rehfeld un Klaus Schleisiek izstrādāja volksFORTH 16 bitu mašīnām, piemēram, 8086 IBM PC un 6502 Apple, Commodore un Atari mašīnām..

Galu galā viņi izveidoja 32 bitu versiju (16 bitu kopnei) 68000 bāzes Atari ST. Kaut arī volksFORTH guva panākumus, projekts diezgan daudz nomira (lai gan vēlāk to sāka no jauna).

Berndu Pajanu pietiekami interesēja šī volksFORTH versija (toreiz to sauca par turboFORTH), tomēr viņš to padarīja par bigFORTH pamatu.

Tā pirmā versija tika izlaista Atari ST 1990. gadā. Līdz 1995. gadam bigFORTH tika pārnests uz 386, un nākamajā gadā bija pieejams Windows NT, OS / 2 un Linux..

Grafiskais interfeiss

Tajā brīdī Paysan sāka darbu MINOS. (Tehniski tas ir “MINOS”, bet parasti to sauc par vienkārši “MINOS”.)

Tas ir grafiskais interfeiss bigFORTH. Varbūt visvieglāk to domāt par “Visual bigFORTH”, piemēram, Visual Basic, jo tas vairāk vai mazāk ir tas, kas tas ir. Pirmoreiz tas tika izveidots X-Windows sistēmai. Bet tas drīz bija pieejams arī operētājsistēmai Windows.

Šķiet, ka gan bigFORTH, gan MINOS izstrāde ir apstājusies ap 2010. gadu. Tomēr tie abi ir viegli pieejami un diezgan noderīgi (bigFORTH ir saderīgs ar ANSI). Patiesībā MINOS ir ļoti jautri spēlēt.

bigFORTH resursi

Ja vēlaties izmantot bigFORTH vai pat to attīstīt, jums būs visi nepieciešamie rīki:

  • Pirmkods: šis ir kods no pēdējās oficiālās izlaišanas 2010. gada 22. martā, versija 2.4.

  • Debian pakotne: viegli instalējama pakete jebkuram Debian bāzes Linux izplatīšanai (piemēram, Ubuntu, Mint). Tas instalējas mapē / usr / local / bin, un tajā ietilpst MINOS, kaut arī to sauc par xbigforth.

  • Windows pašinstalēšanas izpildāmais: tāds pats kā Debian pakotne, bet operētājsistēmai Windows. MINOS ir pat nosaukts xbigforth.exe.

  • Dokumentācija (PDF): šī gandrīz 300 lappušu grāmata darbojas kā apmācība un atsauce, kuras autors ir JL Bezemers. Liela daļa no tā ir domāta generiskajam Forth, un no tā ir ņemts “And So Forth…”.

  • Bernd Paysan mājas lapa: šajā lapā ir daudz interesantas ar Fortu saistītas informācijas un piemēru. Īpaši jāatzīmē Paysan’s Forth balstītā iezīmēšanas valoda.

  • bigFORTH krātuve: gala mērķis visām jūsu bigFORTH vajadzībām.

Gforth

Gforth ir FNT ieviešana GNU. Tai ir izcils ciltsraksts.

Gforta projektu 1992. gadā uzsāka bigFORTH veidotāji Bernds Paisans un Antons Ertls, ar būtisku Jensa Vilkes ieguldījumu.

Tas bija bigFORTH un daudz vecāku vīģu FORTH kombinācija (skatīt zemāk). Bet tā vēsture ir savīta, jo bigFORTH nāca no volksFORTH, kura pamatā bija fig-FORTH.

Tā kā tas ir GNU projekts, kopš tā uzsākšanas ar to ir paveikts liels darbs. Tagad tas ir pilnībā saderīgs ar ANSI un ir sasniedzis visus sākotnējos mērķus. Jaunākā versija ir 0.7.3, un pēdējais ieraksts (autors Paysan) ir 2013. gada 25. februārī.

Runājot par bezmaksas Forth ieviešanu, Gforth ir visbiežāk izmantotais. Daļa no tā notiek tikai tāpēc, ka tā ir daļa no GNU projekta un tā pieejamības. Bet tas ir arī tāpēc, ka tas ir jaudīgs un ātrs.

Gforth resursi

Gforth ir visi nepieciešamie resursi, lai to izmantotu jebkuram nepieciešamajam lietojumam:

  • Pirmkods: šī lapa nodrošina Gforth avota kodu no versijas 0.2.1 līdz pašreizējai, 0.7.3.

  • Debian pakotnes: Debian Linux izplatīšanai ir pieejamas dažādas paketes. Ņemiet vērā, ka atkarībā no izvēlētā pakotnes jums vispirms būs jāinstalē viena vai vairākas citas paketes.

  • Windows pašinstalēšanas izpildāmais: šī ir agrāka (0.7.0) Gforth versija, taču ātrs veids, kā sākt.

  • Dokumentācija (PDF): šī 250 lappušu grāmata attiecas uz Gforth versiju 0.7.0. Tas ir pieejams arī HTML formātā.

  • Gforth krātuve: gandrīz visu, kas saistīts ar Gforth, var atrast šeit.

pbForth

pbForth vairs netiek atbalstīts, taču tā ir tik interesanta Forth ieviešana, ka to ir vērts pārbaudīt.

Kā mēs apspriedām, Forth vienmēr ir bijis saistīts ar aparatūras kontroli. Tāpēc nemaz nebija pārsteidzoši, ka LEGO MINDSTORMS robotikas komplektam tika izveidota Forth ieviešana – īpaši 16 bitu RCX, kas iznāca 1998. gadā..

Liekas, ka tas nekad nav ticis atjaunināts darbam ar otrās paaudzes NXT sērijām, kas iznāca 2006. gadā, kā arī ar pašreizējo MV3, kas iznāca 2013. gadā..

Lai gan pbForth nav oficiālas vietnes, joprojām ir iespējams uzzināt par to un pat izmantot. Tomēr var būt stāva mācīšanās līkne, jo informācijas nav tik daudz. Un, protams, jums būs nepieciešams LEGO MINDSTORMS RCX (tos nav tik grūti atrast, lai lietotu).

NXT izmanto pavisam citu (un 32 bitu) procesoru, tāpēc pbForth noteikti ar to nedarbotos. Tomēr tas varētu būt jautri. Un, ja jūs to darāt, jūs to varētu pārnest uz otrās un trešās paaudzes komplektiem.

pbForth resursi

Informācija, kas ir pieejama parastajā internetā, parasti ir neliela, un tajā vienmēr ir saites uz vietni pbForth, kura nedarbojas vismaz kopš 2010. gada. Liela daļa no tām ir pieejama tikai pateicoties Interneta arhīvam..

  • LEGO robotikas vēsture: lai arī neattiecas uz pbForth, tas sniedz ātru LEGO MINDSTORMS produktu pārskatu.

  • Ievads pbForth
    (PDF): šī 30 lappušu apmācība palīdzēs jums sākt lietot valodu.

  • phForth avota kods
    : ņemiet vērā, ka pbForth ir rakstīts montāžas valodā un Tcl, tāpēc jums būs nepieciešami šie rīki.

  • Windows GUI
    : šis fails tiek palaists, lai gan tā iegūšana kaut kam var būt sarežģītāka. Ja vēlaties pbForth operētājsistēmai Linux vai Mac, jums būs jāizmanto avota kods.

  • phForth mājas lapa Circa 2009
    : šajā lapā ir saites uz diezgan daudz interesantas informācijas par pbForth, īpaši pusotra parauga skriptu.

Citas ieviešanas

  • fig-FORTH: šī bija viena no agrākajām Fortas ieviešanām, ko izveidoja Fortas interešu grupa. Tā ir 16 bitu ieviešana. Tas ir pieejams dažiem brīnišķīgiem veciem datoriem, piemēram, Data General Eclipse un Alpha Micro, kā arī datoriem, kuru pamatā ir 8086 un 6502. Problēma ir tā, ka nav izpildāmu failu – tikai montāžas valodas kods. Un vairumā gadījumu tikai bitu kartes PDF faili. Faktiskais kods, šķiet, ir pieejams tikai 8088/8086, PDP-11 un 6800. (6800 ir 8 bitu procesors, tāpēc acīmredzot bija fig-FORTH 8 bitu versija.)

  • SP-Forth: šī ir bezmaksas Forth ieviešana operētājsistēmai Windows un Linux.

  • 4tH: šī ir viegli lietojamā Forth ieviešana, kas ir pieejama lielam aparatūras klāstam (ieskaitot Raspberry Pi), un tajā ir laba dokumentācija.

  • SwiftForth ™: tas ir sākotnējā uzņēmuma Forth kompilators, kas parādīja Forth pasaulē. Tas ir komerciāls produkts, bet par saprātīgu cenu.

Kopsavilkums

Forth ir aizraujoša un neticami noderīga programmēšanas valoda. Tas jo īpaši attiecas uz aparatūras pārvaldību. Izmantojot šeit pieejamos resursus, jums vajadzētu būt pa ceļam.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map