Fokális | |
---|---|
Szemantika | parancsoló |
Nyelvóra | programozási nyelv |
A végrehajtás típusa | tolmács |
Megjelent | 1968 |
Szerző | Richard Merrill ( Richard Merrill ) |
Típusrendszer | az egyik típus - igazi |
Főbb megvalósítások | múzeum FOCAL-81 POSIX rendszerekhez |
Dialektusok | FOCAL-69 ("klasszikus"), FOCAL 1971, FOCAL 11, FOCAL-81 |
Befolyásolva | JOSS |
A Focal ( Focal , az angol formula calculator rövidítése ) egy magas szintű értelmezett programozási nyelv , a JOSS nyelv átdolgozása .
A nyelv fejlesztéséhez a legnagyobb mértékben Richard Merrill , a DEC PDP-8 egyik legfontosabb fejlesztője járult hozzá , aki megalkotta a PDP-8 eredeti ( 1968 -ban ) és klasszikus (FOCAL-69) Focal tolmácsát . A Focalt a DEC "JOSS-típusú nyelvként" forgalmazta.
A BASIC korai verzióihoz hasonlóan (amelyek 7 évvel később jelentek meg), a Focal interpreter maga biztosította az összes szükséges szoftverkörnyezetet, és nem volt szüksége operációs rendszerre .
A Focal rendkívül erőforrásigényes. Tehát a PDP-8 legegyszerűbb verzióin dolgozott, beleértve a tárolóeszközök nélküli rendszereket is. A tolmács többfelhasználós verziói akár négy felhasználó egyidejű munkáját támogatták a teletype terminálokon. Későbbi megvalósítások készültek a PDP-7/9 és PDP-11 számára .
A Coca-Cola Company a Focal belsőleg módosított, COKE nevű változatát használta.
A szovjet számítógépek közül a Focal az Elektronika BK-0010/0011- en és a ROM - ba épített DVK -n létezett (a későbbi modellekben a BK kazettán is elérhető). Ezekhez a gépekhez gyújtóponti bővítmények is rendelkezésre álltak, amelyeket különböző rajongók írtak. A kiterjesztések számos további parancsot és funkciót tartalmaztak a grafikával, hanggal, bináris programok futtatásával, karakterlánc-feldolgozással és számos mással való munkához.
A nyelv egy jelentősen kibővített változatát használták befogadó nyelvként a DIASP - Conversational Design System -ben - egy speciális , mikroelektronikai célokra tervezett CAD -ben.
Az 1990-es években a rajongók kísérletet tettek arra, hogy a Focalt az IBM PC -re (Turbo Focal) portolják, de ez nem hagyta el a BBS csatornákon terjesztett béta verziót .
A Focal-81 nyilvánosan elérhető forrásverzióját sikeresen tesztelték a következő platformokon és fordítókon:
A szintaxis hasonlósága miatt a Focalt gyakran a BASIC -hez hasonlították . Általánosságban elmondható, hogy a nyelv kifejezőképességét tekintve rosszabb, mint a BASIC - például a Focal-ban egyáltalán nincs karakterlánc adattípus ; A Focal összes változója numerikus (általában tört lebegőpontos számok ). Ugyanakkor a Focal interpreter sokkal kevésbé igényli az erőforrásokat (elsősorban a memóriát ), mint a BASIC, amely lehetővé tette bonyolultabb programok írását korlátozott erőforrásokkal rendelkező rendszereken.
Az 1980-as évek vége óta a Focal-t nem nagyon fejlesztették vagy használták, a Focal-81 fent említett portjait a rajongók készítették szórakozásból.
csapat | leírás | egyenértékű a BASIC-ben |
COMMENT | megjegyzés (a parancsot követő szöveget figyelmen kívül hagyja) | REM |
TYPE | kiadja a konzolra az állandók és kifejezések értékeit | |
QUIT | a program rutinszerű befejezése | END |
SET | érték hozzárendelése egy változóhoz (vagy tömbelemhez) | LET |
ASK | értékek bevitele a konzolból | INPUT |
GOTO | feltétel nélkül ugorj | GOTO |
DO | szubrutinhívás | GOSUB |
RETURN | visszatérés a szubrutinból | RETURN |
IF | kifejezési érték szerinti elágazás | részben megfelelIF |
A nyelvi tolmács a parancsokat az első betűjük alapján ismeri fel, így nem kell azokat teljes egészében leírni. A Focalnak is voltak olyan verziói, amelyek kulcsszavakat tartalmaztak európai nyelveken (a DEC szállítója).
Normál Hello World példa
1,05 C A program megjelenít egy tesztkarakterláncot 1.10 T "Hello World!" ! 1.20QAz ax² + bx + c = 0 alakú másodfokú egyenlet megoldása
1,05 C **** Program egy ax^2 + bx + c = 0 alakú másodfokú egyenlet megoldására 1.10 T "Írja be az a, b, c együtthatókat az ax^2 + bx + c = 0 egyenlethez" ! 1,20 A "a = ", a ! "b = ", b ! "c = ", c 1.30T! "Oldja meg a (", a, ")x2 + (", b, ")x + (", c, ") = 0 egyenletet" ! 1,35 C **** Számítsa ki a diszkriminánst! 1,40 Sd = b^2 - 4*a*c 1,50 T ! "D=", d ! 1,55 C **** Határozza meg a gyökerek számát 1,60 I (d), 3, 4 1,65 C **** az első címke kimarad, tehát D értékkel 1,66 C **** nullánál kisebb értékkel az IF után következő sorba jutunk 2,05 C **** Negatív diszkrimináns - nincs gyökér 2.10 T "Az egyenletnek nincs valódi gyökere" ! 2.20Q 3,05 C **** Nulla diszkrimináns - egy gyökér 3.10 T "Az egyenletnek egy gyöke van" ! 3,20 S s = 0 3.30D5 3,40 T "x = ", x ! 3,90Q 4,05 C **** Pozitív diszkrimináns - két gyök 4.10 T "Az egyenletnek két gyökere van" ! 4,20 Ss = FQT(d) 4.30D5 4,40 T "x1 = ", x ! 4,50 Ss = -s 4.60D5 4,70 T "x2 = ", x ! 4,90Q 5.05 C **** Gyökérrutin, ahol s az előjeles diszkrimináns gyökere 5,10 Sx = (s - b) / (2*a) 5.90RA Focal sorcímkéi formátumúak<номер_группы>.<номер_строки> . GOTOA , IF, parancsok DOmegadhatják a teljes címkét és a csoport számát is sorszám nélkül (átmenetet okoz a csoport legkisebb sorszámú sorára).
A és (konzol I/O !) parancsokban lévő felkiáltójel (" ") egy argumentumelválasztó (a vesszővel együtt), és soremelést okoz a lista következő elemének bevitele vagy kiadása előtt. ASKTYPE
A parancs IFkiértékeli a kifejezés értékét, és az eredménytől függően - negatív, nulla vagy pozitív - a megadott listából a három címke valamelyikére ugrik. Ha a címke kimarad, akkor a vezérlés átkerül a következő IFsorba.
Programozási nyelvek | |
---|---|
|