CMS-2 - CMS-2
Referenční příručka programátorů CMS-2Y | |
Paradigma | Rozkazovací způsob |
---|---|
Navrhl | RAND, Intermetrické údaje |
Vývojář | Computer Sciences Corporation |
Poprvé se objevil | 1968 |
Ovlivněno | |
CS-1, Fortran, ŽOVIÁLNÍ a PL / I.[1] |
CMS-2 je vestavěné systémy programovací jazyk používá Námořnictvo Spojených států.[2] Byl to první pokus vyvinout standardizovaný počítačový programovací jazyk na vysoké úrovni, jehož cílem bylo zlepšit přenositelnost a opětovné použití kódu. CMS-2 byl vyvinut primárně pro taktické datové systémy amerického námořnictva (NTDS ).[1]
CMS-2 byl vyvinut společností RAND Corporation na začátku 70. let a znamená „Compiler Monitor System“. Za názvem „CMS-2“ následuje v literatuře písmeno označující typ cílového systému. Například CMS-2M se zaměřuje na 16bitové procesory Navy, jako je například AN / AYK-14.[2]
Dějiny
CMS-2 byl vyvinut pro FCPCPAC (Fleet Computer Programming Center - Pacific) v San Diegu v Kalifornii. To bylo provedeno Computer Sciences Corporation v roce 1968 s pomocí designu od Intermetrické údaje. Jazyk se nadále vyvíjel a nakonec podporoval řadu počítačů včetně AN / UYK-7 a AN / UYK-43 a UYK-20 a UYK-44 [3] počítače.[4]
Jazykové funkce
CMS-2 byl navržen tak, aby podporoval modularizaci programu a umožňoval nezávislou kompilaci částí celého systému. Jazyk je orientován na prohlášení. Zdroj je ve volné formě a může být uspořádán pro usnadnění programování. Datové typy zahrnují pevnou řádovou čárku, plovoucí řádovou čárku, logickou hodnotu, znak a stav. Přímý odkaz na znakové a bitové řetězce a manipulace s nimi je povolen. Může být zahrnut symbolický strojový kód, známý jako přímý kód.[1]
Struktura programu
Program CMS-2 se skládá z příkazů. Výpisy jsou tvořeny symboly oddělenými oddělovači. Kategorie symbolů zahrnují operátory, identifikátory a konstanty. Operátory jsou jazykové primitivy přiřazené kompilátorem pro konkrétní operace nebo definice v programu. Identifikátory jsou jedinečná jména přiřazená programátorem datovým jednotkám, prvkům programu a popiskům příkazů. Konstanty jsou známé hodnoty, které mohou být číselné, Hollerithovy řetězce, stavové hodnoty nebo booleovské hodnoty.
Výpisy CMS-2 mají volnou formu a jsou ukončeny znakem dolaru. Štítek výpisu lze umístit na začátek výpisu pro referenční účely.
Zdrojový program CMS-2 se skládá ze dvou základních typů výpisů. Deklarativní příkazy poskytují kompilátoru základní řídicí informace a definují strukturu dat souvisejících s konkrétním programem. Dynamické příkazy způsobují, že kompilátor generuje spustitelné strojové instrukce (kód objektu).
Deklarativní příkazy definující data pro program jsou seskupeny do jednotek nazývaných datové vzory. Návrh dat se skládá z přesných definic pro dočasné a trvalé oblasti pro ukládání dat, vstupní oblasti, výstupní oblasti a speciální datové jednotky. Dynamické příkazy, které fungují na datech nebo provádějí výpočty, jsou seskupeny do procedur. Návrh dat a postupy jsou dále seskupeny tak, aby tvořily systémové prvky programu CMS-2. Kompilátor kombinuje prvky systému do systému kompilace času. Systém kompilace času může být samostatný nebo může být součástí většího programu.[1]
Deklarativní prohlášení o datech
Deklarativní příkazy dat poskytují kompilátoru informace o definicích datových prvků. Definují formát, strukturu a pořadí datových prvků v systému kompilace. Tři hlavní druhy dat jsou přepínače, proměnné a agregáty.[1]
Přepínače
Přepínače umožňují přenos řízení programu do konkrétního umístění v systému kompilace. Obsahují sadu identifikátorů nebo spínacích bodů, které usnadňují přenosy programů a větve. Přepínač představuje adresu programu se štítkem příkazu nebo názvem procedury.
Proměnné
Proměnná je jeden údaj. Může se skládat z jednoho bitu, více bitů nebo slov. Hodnotu lze přiřadit v definici proměnné. Proměnné mohou obsahovat konstantní nebo měnící se hodnotu. Datové typy zahrnují celá čísla, fixní bod, plovoucí desetinnou čárku, řetězce znaků Hollerith, status nebo Booleans.
Agregáty
Tabulky obsahují uspořádané sady identicky strukturovaných informací. Společnou jednotkou dat v tabulce je položka. Položky lze rozdělit na pole, což je nejmenší členění tabulky. Povolené datové typy obsažené v polích zahrnují celé číslo, pevný bod, plovoucí desetinnou čárku, řetězec znaků Hollerith, stav nebo logickou hodnotu. Pole je rozšířením konceptu tabulky. Základní strukturální jednotkou pole je položka. Položky pole obsahují pole definovaná programátorem.
Dynamické příkazy
Dynamické příkazy určují operace zpracování a vedou ke generování spustitelného kódu kompilátorem. Dynamický příkaz se skládá z operátoru, za nímž následuje seznam operandů a dalších operátorů. Operand může být jediný název, konstanta, odkaz na datový prvek nebo výraz.[1]
Operátoři výpisu
Hlavní operátoři CMS-2 jsou shrnuti níže.
Operátor | Funkce |
---|---|
SOUBOR | Proveďte výpočty nebo přiřaďte hodnotu |
SWAP | Vyměňte obsah dvou datových jednotek |
JÍT DO | Změňte tok programu nebo zavolejte přepínač příkazů |
LI | Vyjadřuje srovnání nebo booleovský výraz pro podmíněné provedení |
LIŠIT SE | Vytvořte programovou smyčku |
NALÉZT | Hledá data v tabulce |
Speciální operátoři
Speciální operátoři usnadňují odkazy na datové struktury a operace na nich.[1]
Operátor | Funkce |
---|---|
BIT | Odkaz na řetězec bitů v datovém prvku |
CHAR | Odkazuje na řetězec znaků |
CORAD | Odkazuje na základní adresu |
břišní svaly | Získá absolutní hodnotu výrazu |
COMP | Doplňuje logický výraz |
Prohlášení o struktuře programu
Dynamické příkazy, které popisují operace zpracování programu, jsou seskupeny do bloky výpisů zvané procedury.[1]
Počáteční oddělovač | Koncový oddělovač | Účel |
---|---|---|
SYSTÉM | KONECNÍ SYSTÉM | Vymezuje systém kompilace času |
SYS-DD | END-SYS-DD | Vymezuje návrh systémových dat v kompilovaném systému |
SYS-PROC | END-SYS-PROC | Vymezuje systémovou proceduru v systému kompilace |
LOC-DD | END-LOC-DD | Vymezuje návrh lokálních dat v systémové proceduře |
POSTUP | KONEC PROC | Vymezuje postup v systémové proceduře |
EXEC-PROC | KONEC PROC | Vymezuje proceduru stavu úkolu v systémové proceduře (pouze XCMS-2, volána pouze z procedury výkonného stavu) |
FUNKCE | KONEC FUNKCE | Vymezuje funkci v systémové proceduře |
SYS-PROC-REN | END-SYS-PROC | Vymezuje postup reentrantního systému v systému kompilace (pouze XCMS-2) |
AUTO-DD | END-AUTO-DD | Vymezuje oblast dynamických dat v proceduře reentrantního systému, která musí být přidělena pokaždé, když je procedura reentrantního systému zahájena k provedení (pouze XCMS-2) |
HLAVA | KONEC HLAVY | Vymezuje balíček záhlaví v systému kompilace |
Příkazy na vysoké úrovni vstupu / výstupu
Příkazy vstupu / výstupu zajišťují komunikaci s hardwarovými zařízeními při běhu v prostředí, které není v reálném čase, pod monitorovacím systémem.[1]
Operátor | Funkce |
---|---|
SOUBOR | Definuje prostředí a další informace pro vstup a výstup |
OTEVŘENO | Inicializuje I / O rutiny |
ZAVŘÍT | Deaktivuje soubor, zápis a značku konce souboru |
VSTUP | Usměrňuje vstupní operaci z externího zařízení do oblasti vyrovnávací paměti souborů |
VÝSTUP | Přesměruje výstupní operaci z oblasti vyrovnávací paměti souborů na externí zařízení |
FORMÁT | Definuje požadovaný převod mezi externími datovými bloky a interními datovými definicemi |
ZAKÓDOVAT | Usměrňuje transformaci datových prvků do společné oblasti s převodem v souladu se zadaným formátem |
DEKÓDOVAT | Usměrňuje rozbalení společného prostoru a přenos do datových jednotek, jak je uvedeno v deklaraci formátu |
ENDFILE | Umístí značku konce souboru na vhodná záznamová média |
POS | Speciální operátor pro umístění magnetického páskového souboru |
DÉLKA | Speciální operátor pro získání délky záznamu vstupu / výstupu |
Monitorovací systém kompilátoru 2 (CMS-2)
Compiler Monitor System 2 (CMS-2) byl systém, který běžel na UNIVAC CP-642B (AN / USQ-20 ). Systémový software zahrnoval monitor, překladač, knihovník, zavaděč CP-642, pásková utilita a charta toku.[1]
Monitor MS-2
V počítači CP-642 běží dávkový operační systém, který řídí provádění komponent CMS-2 a uživatelských úloh. Poskytuje vstup / výstup, softwarovou knihovnu a nástroje pro ladění. K dispozici je také účtování úloh.
Překladač CMS-2
Kompilátor pro jazyky CS-1 a CMS-2, který generuje objektový kód pro CP-642, L-304, AN / UYK-7, 1830A a 1218 / 1219 počítačů. Během sedmdesátých let existovaly různé verze kompilátoru CMS-2 podle toho, který počítač byl použit ke kompilaci kódu. Některý zdrojový kód musel být přepsán, aby obešel některé funkce. A různé verze CMS-2 měly problémy s ladicími nástroji.
Překladač XCMS-2
Rozšířený překladač CMS-2, přidávající jazykové funkce pro počítač AN / UYK-7. Generuje pouze objektový kód AN / UYK-7.
CMS-2 knihovník
Systém správy souborů, který poskytuje úložiště a přístup ke zdrojovému a objektovému kódu.
Zavaděče kódů objektů CP-642
Dva zavaděče kódů objektů pro načítání absolutního nebo přemístitelného kódu objektu.
Pásková utilita
Sada nástrojů pro správu dat na magnetické pásce.
Průtokový ventil CMS-2
Software flowcharter zpracovává příkazy flowcharter ve zdrojovém kódu CMS-2 a vydává vývojový diagram na vysokorychlostní tiskárnu.
Viz také
- Ada
- AN / AYK-14
- AN / UYK-7
- AN / UYK-20
- AN / UYK-43
- AN / UYK-44
- AN / USQ-17
- AN / USQ-20
- ŽOVIÁLNÍ
- Námořní taktický datový systém
- TACPOL
Reference
- ^ A b C d E F G h i j Americké námořnictvo (1978), Výukový manuál pro základy základů digitálního počítače, NAVEDTRA 10088-B, Americké námořnictvo
- ^ A b Neal Ziring (1998-10-19). „CMS-2“. Ziring MicroWeb. Archivovány od originál dne 1998-10-19. Citováno 2014-07-08.
- ^ Mark Wilson - osobní zkušenost s prací s UYK-20 a UYK-44 na Aegis ORTS
- ^ Činnost podpory systémů Fleet Combat Direction (1986), Referenční příručka programátorů CMS-2Y pro počítače AN / UYK-7 a AN / UYK-43, Americké námořnictvo