~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ E7A0FCDAD0CEC3DC976059171B40CBDE__1717371000 ✰
Заголовок документа оригинал.:
✰ System programming language - Wikipedia ✰
Заголовок документа перевод.:
✰ Язык системного программирования — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/System_programming_language ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/e7/de/e7a0fcdad0cec3dc976059171b40cbde.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/e7/de/e7a0fcdad0cec3dc976059171b40cbde__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 10:25:05 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 3 June 2024, at 02:30 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Язык системного программирования — Википедия Jump to content

Язык системного программирования

Из Википедии, бесплатной энциклопедии

Язык системного программирования — это язык программирования, используемый для системного программирования ; такие языки предназначены для написания системного программного обеспечения , которое обычно требует иных подходов к разработке по сравнению с прикладным программным обеспечением. Эдсгер Дейкстра называл эти языки машинно-ориентированными языками высокого порядка , или мохол . [1]

Языки программирования общего назначения, как правило, фокусируются на общих функциях, позволяющих программам, написанным на этом языке, использовать один и тот же код на разных платформах. Примеры таких языков включают АЛГОЛ и Паскаль . Это общее качество обычно достигается за счет отказа в прямом доступе к внутренней работе машины, что часто отрицательно влияет на производительность.

Системные языки, напротив, разработаны не для обеспечения совместимости, а для обеспечения производительности и простоты доступа к базовому оборудованию, в то же время обеспечивая концепции программирования высокого уровня, такие как структурированное программирование . Примеры включают ESPOL и SPL , оба из которых похожи на ALGOL по синтаксису, но настроены на соответствующие платформы. Другие являются кроссплатформенными, но предназначены для работы близко к оборудованию, например BLISS , JOVIAL и BCPL .

Некоторые языки охватывают системную и прикладную области, устраняя разрыв между этими использованиями. Каноническим примером является C , который широко используется как для системного, так и для прикладного программирования. Некоторые современные языки также делают это, например Rust и Swift .

Особенности [ править ]

В отличие от языков приложений, языки системного программирования обычно предлагают более прямой доступ к физическому оборудованию машины: архетипическим языком системного программирования в этом смысле был BCPL . В языках системного программирования часто отсутствуют встроенные средства ввода-вывода (I/O), поскольку проект системного программного обеспечения обычно разрабатывает свои собственные механизмы ввода-вывода или основывается на базовых средствах ввода-вывода монитора или управления экраном. Различие между языками, используемыми для системного программирования и прикладного программирования, со временем стало размытым с широкой популярностью PL/I , C и Pascal .

История [ править ]

Самое раннее системное программное обеспечение было написано на языке ассемблера главным образом потому, что не было альтернативы, а также по таким причинам, как эффективность объектного кода, время компиляции и простота отладки. Для системного программирования использовались прикладные языки, такие как FORTRAN , хотя обычно все же требовалось писать некоторые процедуры на языке ассемблера. [2]

Языки среднего уровня [ править ]

Языки среднего уровня «имеют большую часть синтаксиса и возможностей языка более высокого уровня, но также обеспечивают прямой доступ к языку (а также ассемблеру) к функциям машины». [2] Самым ранним из них был ESPOL на мэйнфреймах Burroughs примерно в 1960 году, за ним последовал Никлауса Вирта ( PL360 впервые написанный на системе Burroughs как кросс-компилятор ), который имел общий синтаксис ALGOL 60 , но чьи операторы напрямую манипулировали регистрами ЦП и памятью. . Другие языки этой категории включают MOL-360 и PL/S .

Например, типичный оператор PL360: R9 := R8 and R7 shll 8 or R6, что означает, что регистры 8 и 7 должны быть соединены вместе, результат сдвинут влево на 8 бит, результат этого объединен с содержимым регистра 6, а окончательный результат помещен в регистр 9. [3]

Языки более высокого уровня [ править ]

Хотя PL360 находится на семантическом уровне языка ассемблера, другой вид языка системного программирования работает на более высоком семантическом уровне, но имеет специальные расширения, предназначенные для того, чтобы сделать язык подходящим для системного программирования. Ранним примером такого языка является LRLTRAN. [4] который расширил Фортран функциями манипулирования символами и битами, указателями и таблицами переходов с прямой адресацией.

Впоследствии были разработаны такие языки, как C, в которых комбинации функций было достаточно для написания системного программного обеспечения, а также можно было разработать компилятор , который генерировал эффективные объектные программы на скромном оборудовании. В таком языке обычно отсутствуют функции, которые не могут быть эффективно реализованы, и добавляется небольшое количество машинно-зависимых функций, необходимых для доступа к определенным аппаратным возможностям; встроенный ассемблерный код, например C asmзаявление, часто используется для этой цели. Хотя было разработано множество таких языков, [1] C и C++ выжили.

Основные языки [ править ]

Язык Создатель Дата рождения Под влиянием Используется для
ВЕСЕЛЫЙ Корпорация системного развития 1960 АЛГОЛ 58 Многие системы, в основном военные
ЭСПОЛ Корпорация Берроуза 1961 АЛГОЛ 60 МКП
ПЛ/И IBM , ПОДЕЛИТЬСЯ 1964 АЛГОЛ, ФОРТРАН, добавить КОБОЛ Мультикс
ПЛ/С ИБМ 1960-е годы ПЛ/И OS/360 и его преемники
ПЛ360 Никлаус Вирт 1968 АЛГОЛ 60 АЛГОЛ W
Паскаль Никлаус Вирт 1970 АЛГОЛ W Apollo Computer Aegis, Apple MacApp , UCSD p-System
БЛАЖЕНСТВО Университет Карнеги Меллон 1970 АЛГОЛ-ПЛ/И [5] ВМС (порции)
Язык системной разработки (LSD) Р. Дэниел Бержерон и др. (Университет Брауна) 1971 ПЛ/И
С Деннис Ричи 1972 БКПЛ , Б Большинство ядер операционных систем , включая Unix-подобные системы.
Язык системного программирования (SPL) Hewlett Packard 1972 АЛГОЛ 60 , ЭСПОЛ Системное программное обеспечение HP 3000 , включая MPE
НЬЮП Берроуз 1970-е годы ЭСПОЛ, АЛГОЛ МКП
пл.8 ИБМ 1970-е годы ПЛ/И разработка компилятора, AIX (только версии 1 и 2), прошивка мэйнфрейма IBM
ПЛ-6 Ханивелл, Инк. 1970-е годы ПЛ/И КП-6
СИМПЛ CDC 1970-е годы ВЕСЕЛЫЙ Подсистемы NOS , большинство компиляторов, редактор FSE
С++ Бьерн Страуструп 1979 С , Симула Приложения с графическим интерфейсом ( Qt , Windows и т. д.), игры ( Unreal Engine )
S3 ICL 1980-е годы АЛГОЛ 68 ICL VME
Есть Джин Ичбиа , С. Такер Тафт 1983 Алгол 68 , Паскаль , C++ , Эйфель Военный, [6] аэрокосмический [7] массовый транспорт, [8] высокоинтегральные вычисления и ядра операционной системы [9] [10] [11]
Д Цифровой Марс 2001 С++
Nim Андреас Румпф 2008 Python , Ада , Лисп , Оберон , C++ , Модуль-3 , Объектный Паскаль
Идти Google 2009 Оберон , К , Паскаль Кубернетес , Докер
Моджо Модульная Инк. [12] 2023 C , C++ , Python , Rust , Swift , Zig
Ржавчина Исследования Мозиллы [13] 2010 С++ , Хаскелл , Эрланг , Руби Сервопривод , Redox OS , ядро ​​Linux
Быстрый Apple Инк. 2014 C , Objective-C , D , Ржавчина macOS , iOS , watchOS и tvOS Разработка приложений для [а]
Зиг Эндрю Келли 2016 C , C++ , LLVM IR , Go , Rust

См. также [ править ]

Примечания [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б ван дер Поэль, WL; Маарссен, Лос-Анджелес, ред. (27–31 августа 1973 г.). Машинно-ориентированные языки высокого уровня . Рабочая конференция ИФИП по машинно-ориентированным языкам высокого уровня (MOHL). Тронхейм, Норвегия: Международная федерация обработки информации. Труды опубликованы в 1974 году.
  2. ^ Перейти обратно: а б Саммет, Жан (октябрь 1971 г.). «Краткий обзор языков, используемых для реализации систем» . Уведомления ACM SIGPLAN . 6 (9): 1–19. дои : 10.1145/942596.807055 .
  3. ^ Вирт, Никлаус (1968). «PL360, язык программирования для компьютеров 360°». Журнал АКМ . 15 (1): 37–74. дои : 10.1145/321439.321442 .
  4. ^ Мендичино, Сэм Ф.; Хьюз, Роберт А.; Мартин, Жанна Т.; МакМахон, Фрэнк Х.; Ранеллетти, Джон Э.; Цвакенберг, Ричард Г. (1968). «Компилятор LRLTRAN». Коммуникации АКМ . 11 (11): 747–755. дои : 10.1145/364139.364154 .
  5. ^ Вульф, Вашингтон; Рассел, Д.Б.; Хаберман, А.Н. (декабрь 1971 г.). «БЛИСС: язык системного программирования». Коммуникации АКМ . 14 (12): 780–790. CiteSeerX   10.1.1.691.9765 . дои : 10.1145/362919.362936 .
  6. ^ «Пример использования BAE Systems Eurofighter Typhoon» (PDF) .
  7. ^ «Какие языки программирования используются для бортового оборудования самолетов?» .
  8. ^ «TGVweb — система сигнализации TGV» .
  9. ^ «Железноносец» .
  10. ^ «M2OS.RTOS с поддержкой простых задач для небольших микроконтроллеров» .
  11. ^ "Jgrivera67/HiRTOS" . Гитхаб .
  12. ^ «Модуляр Инк.» www.modular.com . Проверено 25 марта 2024 г.
  13. ^ «Исследовательские проекты Mozilla» . Архивировано из оригинала 4 января 2014 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: E7A0FCDAD0CEC3DC976059171B40CBDE__1717371000
URL1:https://en.wikipedia.org/wiki/System_programming_language
Заголовок, (Title) документа по адресу, URL1:
System programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)