Programovací jazyk ECL - ECL programming language
Tento článek obsahuje a seznam doporučení, související čtení nebo externí odkazy, ale jeho zdroje zůstávají nejasné, protože mu chybí vložené citace.Září 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
The ECL programovací jazyk a systém byly rozšiřitelný vysoká úroveň programovací jazyk a vývojové prostředí vyvinut v Harvardská Univerzita v 70. letech. Název „ECL“ znamenal „Extensible Computer Language“ nebo „EClectic Language“. Některé publikace používaly název „ECL“ pro celý systém a „EL / 1“ (Extensible Language) pro samotný jazyk.
ECL byl interaktivní systém, kde byly v systému zastoupeny programy; tam byl kompatibilní překladač a tlumočník. Mělo to ALGOL -jako syntaxe a rozšiřitelný datový typ systém s datovými typy jako občané první třídy. Datové objekty byly hodnoty, nikoli odkazy, a konvence volání dávaly na výběr mezi volání podle hodnoty a volejte odkazem pro každý argument.
ECL byl primárně používán pro výzkum a výuku v návrh programovacího jazyka, metodologie programování (zejména programování pomocí transformační upřesnění ), a programovací prostředí na Harvardu, ačkoli to bylo řekl, aby byl používán také v některých vládních agenturách. Poprvé byl implementován na PDP-10, s pozdější (pouze interpretovanou) implementací na PDP-11 napsáno v BLAHO -11 a křížově kompilován na PDP-10.
Postupy a třídy vazeb
Postup ECL pro výpočet největší společný dělitel dvou celých čísel podle Euklidovský algoritmus lze definovat takto:
1 gcd <- 2 EXPR(m:INT BYVAL, n: INT BYVAL; INT) 3 ZAČÍT 4 DECL r:INT; 5 OPAKOVAT 6 r <- rem(m, n); 7 r = 0 => n; 8 m <- n; 9 n <- r;10 KONEC;11 KONEC
Toto je úkol a postup konstantní do proměnné gcd
. Linie
EXPR (m: INT BYVAL, n: INT BYVAL; INT)
označuje, že procedura trvá dva parametry, typu INT
, pojmenovaný m
a n
, a vrátí výsledek typu INT
. (Datové typy se nazývají režimy v ECL.) třída vazby BYVAL
v každé deklaraci parametru označuje, že je předán tento parametr podle hodnoty. Výpočtové komponenty programu ECL se nazývají formuláře. Některé formy se podobají výrazům jiných programovacích jazyků a jiné připomínají příkazy. Provedení formuláře vždy přináší hodnotu. The OPAKOVAT
... KONEC
construct je smyčková forma. Provedení konstruktu
r = 0 => n
když formulář r = 0
hodnotí na SKUTEČNÝ
způsobí ukončení smyčky s hodnotou n
. Hodnota posledního příkazu v bloku (ZAČÍT
... KONEC
) forma se stává hodnotou blokového formuláře. Hodnota formuláře v deklaraci procedury se stane výsledkem volání procedury.
Kromě třídy vazby BYVAL
, ECL má třídy vazeb SDÍLENO
, JAKO
, UNEVAL
, a SEZNAM
. Třída vazeb SDÍLENO
naznačuje, že a parametr má být předán Odkazem. Třída vazeb JAKO
způsobí předání parametru Odkazem pokud je to možné a podle hodnoty pokud ne (např. pokud je skutečným parametrem čistá hodnota nebo proměnná, na kterou musí být použita konverze typu). Třída vazeb UNEVAL
specifikuje, že abstraktní syntaxový strom skutečný parametr má být předán formálnímu parametru; To poskytuje programátorům mimořádnou flexibilitu při vytváření vlastních notací s vlastní sémantikou hodnocení pro určité parametry procedur. Třída vazeb SEZNAM
je podobný UNEVAL
, ale poskytuje podobnou funkci jako varargy v C: SEZNAM
třída vazby se může objevit pouze v posledním formálním parametru procedury a tento formální parametr je vázán na seznam abstraktní syntaxový strom reprezentace, jedna pro každý zbývající skutečný parametr. ECL má EVAL
vestavěná funkce pro vyhodnocení abstraktní syntaxový strom; alternativně existují funkce, pomocí kterých mohou programátoři prozkoumat uzly souboru abstraktní syntaxový strom a zpracovat je podle vlastní logiky.
Viz také
Reference
PISEL = Sborník z mezinárodního sympozia o rozšiřitelných jazycích, Grenoble, Francie, 1971, publikováno v Oznámení ACM SIGPLAN 6: 12, prosinec 1971.
- Benjamin M. Brosgol, „Implementace datových typů ECL“, PISEL, s. 87–95.
- Thomas E. Cheatham, Jr. Glenn H. Holloway, Judy A. Townley, „Zpřesnění programu transformací“, Sborník z 5. mezinárodní konference o softwarovém inženýrství, 1981, str. 430–437. ISBN 0-89791-146-6
- Glenn H. Holloway, „Integrace tlumočníka / překladače v ECL“, PISEL, s. 129–134.
- Charles J. Prenner, „Zařízení kontrolní struktury ECL“, PISEL, s. 104–112.
- Ben Wegbreit, „Přehled programovacího systému ECL“, PISEL, s. 26–28.
- Ben Wegbreit, "Studie v rozšiřitelných programovacích jazycích." Technická zpráva ESD-TR-70-297. Harvard University, Cambridge, Massachusetts, květen 1970.
- Glenn Holloway, Judy Townley, Jay Spitzen, Ben Wegbreit, „ECL Programmer's Manual“, zpráva 23-74, Centrum pro výzkum výpočetní techniky, Harvard University, prosinec 1974.
- Larry Denenberg, „Implementace PDP-11 ECL“, technická zpráva 29-77, Centrum pro výzkum výpočetní techniky, Harvard University, červen 1977.