Кіріспе

Navy Electronics Laboratory International ALGOL Compiler (NELIAC) — 1958 жылы Navy Electronics Laboratory (NEL) ұйымында жасалған ALGOL 58 бағдарламалау тілінің бір түрі және компиляторы. Ол сандық және логикалық есептеулер үшін арналған және өзін-өзі жүктеуді (bootstrap) іске асыра білген алғашқы тіл болды.

Шығу тегі

NELIAC – сол кездегі Есептеу машиналарын қауымдастығының (ACM) төрағасы және танымал компьютер ғалымы Гарри Хаскидің ойлап тапқан туындысы. Ол Морис Хэлстедтің, NEL есептеу орталығының басшысының қолдауына ие болды. Алғашқы нұсқасы зертханадағы AN/USQ 17 прототипі компьютерінде (графиня Ада Лавлейс атынан «графиня» деп аталды) іске асырылды. Бұл – әлемдегі алғашқы өздігінен компиляцияланатын компилятор, бұл қасиет «bootstrap» деп аталады. Бұл компилятор бастапқыда қарапайым түрінде «bootstrap» деп аталатын тілде кодталды, содан кейін осы «bootstrap» компиляторымен құрастырылып, өзімен қайта құрастырылды, осылайша «bootstrap» ескірді. Ол ALGOL 58 тіліне ұқсастығымен байланысты оның нұсқасы саналады, бірақ екі жыл ішінде ALGOL комитеті ALGOL-дің басқа нұсқаларын жасады, нәтижесінде NELIAC пен ALGOL арасында айырмашылықтар пайда болды.

Қолдану

Компилятор графиняда CDC 1604 нұсқасын жасау үшін қолданылды, кейіннен ол машинада өзіндік құрастырылды. UNIVAC 1107, 490 және 418, сондай-ақ IBM 704 және 709 сияқты коммерциялық компьютерлер үшін көптеген басқа нұсқалар дайындалды. NELIAC-тің өндірістік нұсқасы екінші буын жүйесі болды (AN/USQ 20 үшін, AN/USQ 20-ның жаңартылған және әскерилендірілген нұсқасы), ол бірінші нұсқадан құрастырылды, бірақ алгоритмдік өрнектерді толық түрде түсіндіруді және кейіннен басқа барлық нұсқаларда болмаған кіріс/шығыс (I/O) жүйесін қамтыды. Декомпилятор болса, жаңалық болды. Бірінші нұсқа графиняда жұмыс істеді, бірақ кейіннен CDC 1604 және басқа компьютерлерге көшірілді, сондай-ақ кейбір университеттерде назар аударды. Дегенмен, сол кезде декомпиляциялауға тұрарлық бағдарламалардың көп еместігі анықталды. NELIAC ешқашан коммерциялық өнім ретінде жоспарланбаған. Оның сол кездегі басқа компиляторлардан басты артықшылығы – басқа компьютерлерге оңай көшірілуі және бір реттік компиляция архитектурасы болды, бұл оның басқа жоғары деңгейдегі бағдарламалау тілдерінен 60-120 есе жылдам компиляция жасауына мүмкіндік берді, олар көп реттік компиляторларды қолданды. Мысалы, JOVIAL компиляторы 14 рет өтті. Тілдің қарапайымдылығы және оның жылдам компиляциялау уақыты басқа замандас компиляторларға қарағанда әлдеқайда жылдам даму циклдарын қамтамасыз етті. Бұл компьютерлік жүйелерді әзірлеу мәселесіне тиімдірек шешім табуға бағытталған NEL-дің ішкі жобасы болды. NELIAC 1967 жылдан 1971 жылға дейін Канада Корольдік Әскери-теңіз флотының Командалық-бақылау жүйесі 280 (DDH 280 эсминецтерінде қолданылған) үшін бағдарламалық жасақтаманы әзірлеу үшін пайдаланылды. Бағдарламалық жасақтаманы әзірлеу үшін Канаданың Онтарио штатындағы Оттава қаласында Канада Әскери-теңіз флоты Бағдарлама жасау орталығын құрды. Хост-компьютер 160 кБ жадысы бар Litton L304F болды. Жадының шектеулі болуына байланысты NELIAC қолданбалық бағдарламалық жасақтамасы кейіннен құрастырушы кодпен қайта жазылды. NELIAC эксперименталды кемелік су астына қарсы соғыс жүйесін іске асыру үшін қолданылды, сондай-ақ ұшақ тасымалдаушылар мен крейсерлерге орнатылған стратегиялық командалық және басқару жүйесін әзірлеген Ұлттық төтенше жағдай командалық бекеті (NECPA) жобасын дамытуға пайдаланылды. NELIAC-тің ең табысты қолданысы, әлдебір, 1968 жылы өндіріске енгізілген және 1990 жылдардың басына дейін қолданылған АҚШ Әскери-теңіз күштерінің автоматтандырылған жоғары жиілікті бағытты анықтау желісін (Classic Bullseye) басқару болды. Сонымен қатар, NEL магниттік ленталар, принтерлер және телекоммуникациялық жабдықтар үшін кіріс/шығыс қамтамасыз ететін, жұмыстарды ретті түрде компиляциялауды жүзеге асыратын және өте үлкен компьютерлік бағдарламаларды байланыстыруға және оларды тікелей орындауға мүмкіндік беретін NELOS, пакеттік операциялық жүйесін жасады, оның құрамында деректер базалары, IBM-нің GIS-тің алғашқы нұсқасы сияқты еркін пішіндегі сұраныстар және есеп беруге арналған бағдарламалар кіретін ақпараттық басқару бағдарламаларының жиынтығы болды. NECPA және NELOS 1966 жылы теңізге шықты.

NELIAC-тің аяқталуы

Алайда, NELIAC бағдарламаларын тасымалдау қиын болды, себебі тіл сөз ұзындығына байланысты екілік символдарды өңдеуге рұқсат берді. Бұған қоса, NELIAC тілінде деректерді енгізу-шығару жүйелері болған жоқ. Сонымен қатар, оның циклдық операторы тым қатаң болды, себебі индекс айнымалысы соңғы мәнге міндетті түрде дәл жеткені керек еді, әйтпесе шексіз цикл пайда болар еді. Міне, NELIAC-тің әлсіз тұстары осы еді. Niklaus Wirth сияқты көптеген танымал компьютер мамандары да жобаға үлес қосты, бірақ ақырында NELIAC Әскери-теңіз департаменті коммерциялық қолдауға ие компиляторларды стандарттағаннан кейін қолданудан шығып қалды.