IMP (programovací jazyk) - IMP (programming language)
Paradigmata | Multi-paradigma: procesní, rozkazovací způsob, strukturovaný, rozšiřitelný |
---|---|
Rodina | ALGOL |
Navrhl | Edgar T. Irons |
Vývojář | Národní bezpečnostní agentura |
Poprvé se objevil | 1965 |
Stabilní uvolnění | IMP72 / 1972 |
Psací disciplína | Statický, silný |
Rozsah | Lexikální |
Jazyk implementace | ALGOL 60 |
Plošina | CDC 6600, Cray, PDP-10, PDP-11 |
OS | COS, ROZSAH, TOPS-10, Unix, ostatní |
Licence | Proprietární |
Hlavní, důležitý implementace | |
IMP65, IMP70, IMP72 | |
Ovlivněno | |
ALGOL 60 |
IMP je brzy systémy programovací jazyk který vyvinul Edgar T. Irons koncem šedesátých a počátkem sedmdesátých let na Národní bezpečnostní agentura (NSA). Na rozdíl od většiny ostatních jazyků systémů IMP podporuje syntax -rozšiřitelné programování.
Přestože jeho designér odkazuje na jazyk jako na „založený na ALGOL "[Citace je zapotřebí ], IMP vylučuje mnoho definování funkce tohoto jazyka a zároveň podporuje velmi ne-ALGOL podobný: rozšiřitelnost syntaxe.
A překladač pro IMP existoval již v roce 1965 a byl používán k programování CDC 6600 systém sdílení času, který se používal na Institut pro obranné analýzy od roku 1967. Ačkoli je kompilátor pomalejší než srovnatelný pro nerozšiřitelné jazyky, byl použit pro praktickou produkční práci.
Překladače IMP byly vyvinuty pro CDC 6600, Cray, PDP-10 a PDP-11 počítače. Důležité verze IMP byly IMP65, IMP70 a IMP72.
Rozšiřitelná syntaxe v IMP72
Jako rozšiřitelný programovací jazyk syntaxe umožňuje IMP programátorovi rozšířit jeho syntaxi, ačkoli nejsou k dispozici žádné specifické prostředky pro přidání nového typy dat nebo struktury. K dosažení rozšiřitelnosti syntaxe používá IMP výkonný algoritmus analýzy založený na syntaxi grafu a několika matricích připojení. Programátor může přidat nové Backus – Naurova forma (BNF) do grafu.
Syntaxe IMP72 je rozšířena pomocí rozšířeného BNF příkazy syntaxe součástí a zdrojový kód program. Mechanismus je tak mocný, že umožňoval implementaci jazyka sám o sobě, tj. Zdrojovým souborem IMP72 sestávajícím výhradně z příkazů syntaxe, který byl vložen do triviálního kompilátoru, který byl původně schopen přeložit nejjednodušší případ příkazu syntaxe . Existuje také jednoduchá forma syntaxe, která vypadá jako makro příležitostnému uživateli.
V zásadě je příkaz syntaxe rozšířenou produkcí BNF s přidruženým sémantika přidáno vpravo:
<třída> ::= syntaxe-část ::= sémantická část
Například pro přidání konstruktu popsaného v následujícím BNF:
<EXP> ::= PŘÍRŮSTEK <VBL>
se sémantikou, která INCREMENT V
by měl překládat do V ← V + 1
, programátorovi by stačilo vložit pouze následující Prohlášení IMP:
<EXP> ::= PŘÍRŮSTEK <VBL, A> ::= „A ← A + 1“
Sémantická část může také obsahovat volání na sémantické rutiny, jako v následujícím příkazu syntaxe:
<ATOM> ::= břišní svaly ( <ATOM, A> ) ::= DEWOP(214B,AREG1(1,13),A)
Sémantická část tohoto příkazu se skládá z volání sémantické rutiny DEWOP
. Argumenty jsou osmičková konstanta 214B
, sémantické rutinní volání AREG1 (1,13)
, a A
, což je objekt v horní části zásobníku v okamžiku vyvolání této produkce. DEWOP
je sémantická rutina, která bere jako argument strojový jazyk PDP-10 operační kód, objekt registru a jakýkoli jiný objekt a vytvoří objekt, jehož hodnota je výsledkem provedení určené strojové instrukce pomocí pole adresy jako objektu, který je jeho posledním argumentem. V tomto příkladu operační kód 214B
označuje Velikost zatížení
instrukce, a tedy výsledkem výše uvedeného syntaxe bude kompilace kódu pro výpočet absolutní hodnoty A
.
Folklórní operační systém
IMP byl jazyk používaný pro domácí NSA sdílení času operační systém pojmenovaný Folklór.[1]
Viz také
- Edinburgh IMP jazyk (kontrast)
Reference
- ^ Cotter, Georgi. „High-Performance Computing at the National Security Agency“. Hranice superpočítače II. University of California Press. Citováno 25. května 2012.
- Irons, Edgar T. (leden 1970). "Zkušenosti s rozšiřitelným jazykem". Komunikace ACM. Sdružení pro výpočetní techniku. 13 (1).
- Bilofsky, Walter (květen 1974). Msgstr "Rozšíření syntaxe a programovací jazyk IMP72". Oznámení SIGPLAN. Sdružení pro výpočetní techniku - přes Yale University.
externí odkazy
- Referenční příručka PDP-10 IMP72
- Zdroje IMP72 (dcus: [43,50306] *. *)