Četvrto: Čudan programski jezik. Evo zašto biste to uopće mogli voljeti

Objava: Vaša podrška pomaže održavanju web mjesta! Naplaćujemo naknadu za preporuku za neke usluge koje preporučamo na ovoj stranici.


Forth je neobičan jezik. Prvenstveno je tumač i ima sučelje naredbenog retka tako da se može koristiti u stvarnom vremenu. Ali također ima mogućnost uzimanja skupova koda i sastavljanja. Dakle, to je nešto hibridno.

Zbog toga se Forth često koristi na hardveru koji nema tradicionalni operativni sustav. Također se široko koristi za kontrolu strojeva, a upotrebljava se i u svemirskim istraživanjima – čak i na Philae, sondi koja je sletila na komet 67P / Churyumov – Gerasimenko.

Povijest

Forth je razvio Charles Moore počevši 1968. dok je radio grafičko programiranje u Mohasco Industries. No, prva cjelovita Forthova implementacija dogodila se tek 1971. godine, kada je Moore stvorio samostalan sustav za kontrolu 11-metarskog teleskopa u Nacionalnom opservatoriju za radio astronomiju SAD-a (NRAO).

Ranije verzije Forth-a privukle su pozornost programske zajednice. Ali u ovom je trenutku postala vrlo popularna u astronomskoj zajednici. Tako je 1973. Moore osnovao FORTH, Inc sa svojim kolegama iz NRAO-a Elizabeth Rather i Edwardom Conklinom.

Tvrtka je program prenosila na mnogo različitih sustava. I FORTH, Inc je i dalje važna tvrtka koja pruža proizvode vezane uz Forth ljudima u poslovnom svijetu, akademskoj zajednici i vladi.

Pregled Fortha

Postoji nekoliko jedinstvenih aspekata programskog jezika Forth. Ovdje ćemo raspravljati o najvažnijim.

Četvrte značajke

Forth nudi mnogo jedinstvenih značajki:

  • Interaktivno programiranje

  • Stvaranje sastavljenih nastavaka jezika koji se naziva “riječi”

  • Stage i obrnuta poljska notacija

  • Izravna veza između korisnika i hardvera.

Obrnuta poljska notacija

Forth radi matematičke proračune koristeći obrnutu poljsku notaciju. To ovisi o spremanju brojeva u hrpu.

Razmislite o izračunu: 2 + 3. U Forthu bi se to učinilo postavljanjem 2 na snop, zatim postavljanjem 3 u snop i dodavanjem istih. Ovo bi izgledalo otprilike ovako: 2 3 +.

Čini se malo čudnim, ali je računalu lakše parirati, jer je to način na koji računala zapravo rade proračune. A kad se naviknete na koder, to postaje sasvim prirodno.

Uz to, nema potrebe za zagradama. Razmotrimo sljedeća dva primjera. (Napomena: znak crte unazad započinje komentar.)

2 3 + 5 * To je isto što i (2 + 3) * 5
2 3 5 * + To je isto što i 2 + 3 * 5

U prvom primjeru 2 su gurnuta u hrpu, a slijedi 3. Dakle, 2 je drugo u nizu, a 3 prvo. Operater “+” primjenjuje se na prva dva elementa skupa. Ovo uklanja ove dvije stavke iz snopa i ostavlja 5 (2 + 3) na vrhu snopa.

Zatim gurnemo 5 na hrpu. To postavlja 5 na prvi i drugi položaj snopa. Na kraju, primjenjujemo operatora “*”, što rezultira da se 25 (5 * 5) postavi na vrh snopa.

U drugom primjeru stavljamo 2, 3 i 5 na snop, tako da je 5 u prvom položaju, 3 u drugom, a 2 u trećem. Zatim primjenjujemo operatora “*” na gornja dva elementa snopa (5 * 3) što rezultira da se 15 postavi na vrh snopa.

U ovom trenutku, 15 je na prvom položaju, a 2 u drugom. Kada se primijeni operator +, on ostavlja 17 (15 + 2) na vrhu snopa.

Primjer programa

Sljedeći je program vrlo jednostavan, ali pokazuje mnogo onoga što se događa na jeziku.

: OUTMATH Iznesite matematički proračun
." Sada ćemo izračunati: (2 + 3) * 5" CR
2 3 + 5 *
." Ovo je jednako: " . CR;

OUTMATH

Prvo što ovaj program radi je definiranje funkcije koja se zove OUTMATH. Linije koje ga slijede dio su funkcije prema gore koja se završava točkom sa zarezom. Prvi redak ispisuje tekst, “Sada ćemo izračunati: (2 + 3) * 5” i slijedi ga s povratkom prijevoza.

Sljedeći redak izvodi proračun koji smo gore raspravljali, rezultirajući time da je 25 postavljeno na vrh snopa. Posljednji redak funkcije daje “Ovo je jednako:”, a zatim vrijednost na vrhu snopa (predstavljeno s “.”) I povratak nosača.

Tada jednostavno pokrećemo funkciju. Kada se program pokrene, on proizvodi:

Sada ćemo izračunati: (2 + 3) * 5
To je jednako: 25

Nauči dalje

Za većinu programera ovo je novi način razmišljanja. Ali iznenađuje koliko je to prirodno kad jednom počnete raditi s njim. Evo nekoliko udžbenika i knjiga koje će vam omogućiti da radite s jezikom.

Četvrti udžbenici

Puno je mrežnih udžbenika. Budući da je Forth čudan programerima koji nisu Forthi istovremeno, a trenutnim korisnicima je to očigledno, mnogi udžbenici zamišljaju stvari koje mogu biti zbunjujuće za početnike. Ovi vodiči nemaju ovaj problem.

  • Easy Forth: ova kratka e-knjiga izvrstan je uvod. Jedini je nedostatak to što nije velik na primjerima. Stoga pogledajte neke od primjera u nastavku.

  • Početnički vodič za Forth: ovo je još jedan dobar uvod. To je malo tehničko, ali ima više primjera.

  • I tako Forth …: ovo je vrlo temeljit uvod u Forthu – gotovo jednako dobar kao knjiga.

Četvrte knjige

Često je lakše naučiti novi jezik tako što ćete dobiti knjigu koja vas može korak po korak voditi kroz postupak. O Forthu ima puno dobrih knjiga – posebno one iz 1980-ih, kada je Forth stvarno sletio. Ovdje je zbirka najboljih i najvažnijih.

  • Otkrijte Forth: Učenje i programiranje četvrtog jezika (1982) Thom Hogan: ovo je dobar i koncizan uvod u četvrti jezik.

  • Starting Forth: Uvod u četvrti jezik i operativni sustav za početnike i profesionalce (1982) Lea Brodiea: ovo je klasičan i odličan način za učenje Forth-a. Nema ga u tisku, ali rabljene kopije nije teško pronaći za malo novca. Također je besplatno online. Napredni programeri Forth-a možda će htjeti provjeriti Brodieev noviji, Misleći Forth.

  • Forth Lite Tutorial (2014) Juergen Pintaske: ovo je tutorial temeljen na Kindleu koji se fokusira na primjere.

  • Programiranje problema orijentiranog na problem: Četvrti – Kako funkcioniraju interni (Charles) Moore: 2014. ovo je Kindle verzija knjige koju je stvoritelj Forth napisao davno. I dalje pruža uvid u jezik, ali nije najbolji izbor za početak.

  • Priručnik za četvrti programer (Elizabeth Rather i Edward Conklin): ovo je naprednija knjiga o Forthu od strane druga dva četvrta pionira. Pogledajte i Rather-ovu knjigu, Forth Application Techniques (2006).

Ostali resursi

  • Četvrta interesna skupina: Na ovom se mjestu nalaze sve vrste zanimljivih podataka, uključujući stare povijesne dokumente. Nažalost, ima i puno prekinutih veza. Ali svejedno vrijedi provjeriti.

  • Poveznice na Forth programe: ovo je sjajna zbirka stvarnih primjera programa poput proračunske tablice i rješavanja Sudoku puzzle.

  • Četvrta Google grupa: ovo je vrlo aktivna grupa Forth korisnika koja postavljaju i odgovaraju na pitanja.

  • Četvrti Subreddit: Ovo nije strašno aktivan forum, ali na njemu još uvijek postoje ljudi koji znaju.

Četvrte implementacije

Tijekom godina bilo je mnogo implementacija Forth-a. Forth Interest Group ima dugu stranicu Forth Compilersa. Dakle, ako vam se dogodi da u vašoj garaži bude postavljena PDP-11, možete nabaviti Forth prevodilac za to! Ali za modernije sustave evo i češćih opcija.

bigFORTH

Sredinom osamdesetih, Dietrich Weineck, Georg Rehfeld i Klaus Schleisiek razvili su VolksFORTH za 16-bitne strojeve poput 8086 IBM PC-a i 6502 Apple, Commodore i Atari strojeva.

Na kraju su stvorili 32-bitnu verziju za (16-bitni magistralni) 68-akcijski Atari ST. Iako je volksFORTH napredovao, projekt je prilično umro (iako je kasnije ponovo pokrenut).

Bernd Paysan bio je dovoljno zainteresiran za ovu verziju volksFORTH-a (tada se tada nazvao turboFORTH), međutim, on ju je činio osnovom bigFORTH-a.

Njegova prva verzija objavljena je za Atari ST 1990. godine. Do 1995. godine bigFORTH je prenesen na 386, a već sljedeće godine dostupan je na Windows NT, OS / 2 i Linuxu.

Grafičko sučelje

U tom je trenutku Paysan počeo raditi na MINOS-u. (Tehnički je to “MINOS”, ali obično se naziva i “MINOS”.

To je grafičko sučelje za bigFORTH. Možda bi bilo najlakše misliti na to kao “Visual bigFORTH” kao što je Visual Basic, jer je to manje-više ono što jest. Prvo je stvoreno za X-Windows sustav. Ali uskoro je bio dostupan i za Windows.

Čini se da se razvoj i na bigFORTH-u i na MINOS-u zaustavio oko 2010. Međutim, oni su lako dostupni i vrlo korisni (bigFORTH je u skladu sa ANSI). Zapravo, s MINOS-om se puno zabavlja.

bigFORTH Resursi

Ako želite koristiti bigFORTH ili se čak i razvijati za njega, imat ćete sve potrebne alate:

  • Izvorni kod: ovo je kôd iz posljednjeg službenog izdanja 22. ožujka 2010., verzija 2.4.

  • Debian paket: lako instaliran paket za bilo koju Debianovu Linux distribuciju (npr. Ubuntu, Mint). Instalira se u / usr / local / bin i uključuje MINOS, iako se naziva xbigforth.

  • Windows se samoinstalira izvršno: isto kao Debian paket, ali za Windows. MINOS je čak nazvan xbigforth.exe.

  • Dokumentacija (PDF): ova knjiga od gotovo 300 stranica djeluje kao udžbenik i referenca, a napisao ju je JL Bezemer. Veći dio toga je na generičkom Forthu, a iz onoga je preuzeto “I tako dalje …”.

  • Početna stranica Bernda Paysana: na ovoj se stranici nalazi mnoštvo zanimljivih podataka i primjera vezanih za Forth. Posebno treba spomenuti Paysanov četverostruki jezik za označavanje.

  • Repozitorij bigFORTH: krajnje odredište za sve vaše potrebe BigFORTH-a.

Gforth

Gforth je GNU-ova implementacija Forth-a. Ima ugledni rodovnik.

Projekt Gforth pokrenuli su 1992. kreator bigFORTH-a Bernd Paysan i Anton Ertl, uz znatne doprinose Jens Wilke-a.

Bila je to kombinacija bigFORTH-a i mnogo starije smokve-FORTH (vidi dolje). Ali povijest je iskrivljena, budući da je bigFORTH potekao od volksFORTH, koji se temeljio na fig-FORTH.

Budući da je GNU projekt, na njemu je učinjeno mnogo posla. Sada je potpuno u skladu s ANSI-om i postigao je sve svoje prvobitne ciljeve. Najnovija inačica je 0.7.3, a zadnji unos (Paysan) je 25. veljače 2013.

U smislu besplatnih Forth implementacija, Gforth se najčešće koristi. Dio toga je samo zato što je dio GNU projekta i njegove dostupnosti. Ali to je i zato što je moćan i brz.

Gforth resursi

Gforth ima sve resurse koji su vam potrebni da biste ga iskoristili za sve što vam treba:

  • Izvorni kod: Ova stranica sadrži Gforth izvorni kod od verzije 0.2.1 do trenutne, 0.7.3.

  • Debian paketi: dostupni su razni paketi za distribuciju Debian Linuxa. Imajte na umu da, ovisno o odabranom paketu, možda ćete prvo trebati instalirati jedan ili više drugih paketa.

  • Windows se samoinstalira izvršno: ovo je ranija (0.7.0) verzija Gforth-a, ali brz način za započinjanje.

  • Dokumentacija (PDF): ova knjiga od 250 stranica odnosi se na verziju 0.7.0 od Gforth-a. Dostupna je i u HTML formatu.

  • Gforth Repozitorij: ovdje se može naći gotovo sve povezano s Gforthom.

pbForth

pbForth izgleda više nije podržan, ali to je toliko zanimljiva primjena Forth-a da je vrijedno provjeriti.

Kao što smo raspravljali, Forth je uvijek bio povezan s hardverskom kontrolom. Dakle, uopće nije iznenađujuće što je stvorena Forth implementacija za LEGO MINDSTORMS komplet robotike – točnije, 16-bitni RCX koji je izašao 1998. godine.

Čini se da nikada nije ažuriran za rad s drugom generacijom, NXT serijom koja je izašla 2006. godine, niti s trenutnim MV3 koji je izašao 2013. godine.

Iako nema službene stranice za pbForth, još uvijek je moguće saznati o njoj, pa čak i upotrijebiti je. Međutim, može biti strma krivulja učenja, jer nema toliko informacija. I jasno, trebat će vam LEGO MINDSTORMS RCX (oni se ne mogu tako teško koristiti).

NXT koristi potpuno drugačiji (i 32-bitni) procesor, pa pbForth sigurno ne bi radio s njim. Ipak, moglo bi biti zabavno. A ako ste do njega, mogli biste je zamisliti u komplete druge i treće generacije.

pbForth resursa

Informacije koje su dostupne na uobičajenom internetu uglavnom su kratke i uvijek se odnose na početnu stranicu pbForth, koja ne funkcionira barem 2010. godine. Veliki dio toga dostupan je samo zahvaljujući Internet arhivi.

  • Povijest LEGO robotike: iako ne govori o pbForthu, nudi brzi pregled LEGO MINDSTORMS proizvoda.

  • Uvod u pbForth
    (PDF): ovaj 30 stranica stranice će vam započeti s jezikom.

  • phForth izvornog koda
    : imajte na umu da je pbForth napisan na jeziku sklapanja i Tcl, pa će vam morati biti dostupni ovi alati.

  • Windows GUI
    : ova se datoteka pokreće, iako je natjeranje na bilo što možda i složenije. Ako želite pbForth za Linux ili Mac, morat ćete koristiti izvorni kod.

  • phForth Početna stranica Circa 2009
    : ova stranica sadrži linkove do prilično zanimljivih podataka o pbForthu, ponajviše pola tuce primjera skripti.

Ostale provedbe

  • fig-FORTH: ovo je bila jedna od najranijih Forthovih implementacija, koju je kreirala Forth Interest Group. To je 16-bitna implementacija. Dostupan je za neka prekrasna stara računala poput Data General Eclipse i Alpha Micro, kao i za računala utemeljena na 8086 i 6502. Problem je što ne postoje izvršne datoteke – samo kod jezika jezika montaže. I u većini slučajeva samo bitmap PDF datoteke koda. Čini se da je stvarni kôd dostupan samo za 8088/8086, PDP-11 i 6800. (6800 je 8-bitni procesor, tako da je očito postojala 8-bitna verzija fig-FORTH.)

  • SP-Forth: ovo je besplatna Forth implementacija za Windows i Linux.

  • 4tH: ovo je jednostavna implementacija Fortha koja je dostupna za širok raspon hardvera (uključujući Raspberry Pi) i uključuje dobru dokumentaciju.

  • SwiftForth ™: ovo je sastavljač Forth-a iz izvorne tvrtke koji je Forth donio u svijet. To je komercijalni proizvod, ali povoljne cijene.

Sažetak

Forth je fascinantan i nevjerojatno koristan programski jezik. To je osobito istinito ako želite kontrolirati hardver. Koristeći resurse ovdje, trebali biste krenuti.

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