~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ D0C3AFAFBE92E5EC743762A29E5E998A__1683414840 ✰
Заголовок документа оригинал.:
✰ BLISS - Wikipedia ✰
Заголовок документа перевод.:
✰ БЛИСС — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/BLISS ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/d0/8a/d0c3afafbe92e5ec743762a29e5e998a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/d0/8a/d0c3afafbe92e5ec743762a29e5e998a__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 10:29:32 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 7 May 2023, at 02:14 (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

БЛАЖЕНСТВО

Из Википедии, бесплатной энциклопедии
БЛАЖЕНСТВО
Парадигма Структурированный , императивный ( процедурный )
Разработано В.А. Вульф , Д.Б. Рассел, А.Н. Хаберманн
Разработчик Университет Карнеги Меллон
Впервые появился 1970 год ; 54 года назад ( 1970 )
Стабильная версия
БЛИСС-64
Дисциплина набора текста Бестиповый
Объем Лексический
Платформа PDP-10 , PDP-11 , VAX , PRISM , MIPS , DEC Alpha , IA-32 , IA-64 , x86-64
ТЫ Кросс-платформенный
Веб-сайт пдп-10 .задний край /bb-m836d-bm /
Диалекты
Общее БЛИСС
Под влиянием
АЛГОЛ

BLISS — это язык системного программирования , разработанный в Университете Карнеги-Меллона (CMU) В.А. Вульфом , Д.Б. Расселом и А.Н. Хаберманном примерно в 1970 году. Это был, пожалуй, самый известный системный язык, пока C. несколько лет спустя не дебютировал С тех пор C стал популярным и распространенным, а BLISS канул в безвестность. Когда язык C находился в зачаточном состоянии, в нескольких проектах Bell Labs обсуждались преимущества BLISS перед C. [ нужна цитата ]

BLISS — это бестиповый основанный , язык программирования с блочной структурой на выражениях, а не на инструкциях, и включает в себя конструкции для обработки исключений , сопрограммы и макросы . Он не включает оператор goto .

По-разному говорят, что это название является сокращением от «Базового языка реализации системного программного обеспечения» или «Языка реализации системного программного обеспечения, наоборот» . Однако в своей устной истории в 2015 году для проекта истории компьютерной безопасности Института Бэббиджа Вульф заявил, что аббревиатура изначально была основана на названии «Язык Билла для реализации системного программного обеспечения». [1]

Оригинальный компилятор Карнеги-Меллона отличался широким использованием оптимизаций и лег в основу классической книги « Проектирование оптимизирующего компилятора» .

Digital Equipment Corporation (DEC) разработала и поддерживала компиляторы BLISS для PDP-10 . [2] ПДП-11 , [2] ВАКС , [2] ДЕК ПРИЗМА , [3] МИПС , [2] ДЭК Альфа , [2] и Intel IA-32 , [2] Язык не стал популярным среди клиентов, и лишь немногие имели компилятор. [4] но DEC активно использовала его внутри компании до 1980-х годов; большинство служебных программ для OpenVMS операционной системы были написаны на BLISS-32. Компилятор DEC BLISS был портирован на архитектуры IA-64 и x86-64 как часть портирования OpenVMS на эти платформы. [2] [5] Компилятор BLISS x86-64 использует LLVM в качестве внутреннего генератора кода , заменяя собственный бэкэнд GEM, используемый для Alpha и IA-64.

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

[ чрезмерная цитата ]

BLISS обладает многими функциями других современных языков высокого уровня. Он имеет блочную структуру, автоматический стек и механизмы для определения и вызова рекурсивных процедур... предоставляет множество предопределенных структур данных и... средства для тестирования и итерации...

С другой стороны, в BLISS отсутствуют некоторые особенности других языков высокого уровня. Он не имеет встроенных средств ввода/вывода, поскольку проект системного программного обеспечения обычно разрабатывает собственный ввод/вывод или основывается на базовом вводе/выводе монитора или службах управления экраном... он обеспечивает доступ к специфичным для машины функциям, потому что системное программное обеспечение часто требует этого. BLISS обладает характеристиками, необычными для языков высокого уровня. Имя... единообразно интерпретируется как адрес этого сегмента, а не как значение сегмента... Кроме того, BLISS является «языком выражений», а не «языком операторов».

Это означает, что каждая конструкция языка, не являющаяся объявлением, является выражением. Выражения создают значение, а также могут вызывать такие действия, как изменение памяти, передача управления или выполнение программного цикла. Например, аналогом «оператора» присваивания в BLISS является, строго говоря, выражение, которое само по себе имеет значение. Значение выражения может быть использовано или отброшено в BLISS... Наконец, BLISS включает в себя функцию макросов, которая обеспечивает уровень возможностей, обычно встречающийся только в макроассемблерах.

- Руководство по языку Bliss , Digital Equipment Corporation (1987). [6]

Язык BLISS имеет следующие характеристики:

  • Все константы представляют собой полное слово для используемой машины, например, на 16-битной машине, такой как PDP-11 , константа равна 16 битам; на компьютере VAX константы имеют размер 32 бита, а на PDP-10 константа равна 36 битам.
  • Ссылка на переменную всегда относится к адресу этой переменной. Например, инструкция Z+8относится к добавлению 8 к адресу Z, а не к его значению . Z нужно добавить 8 Если к значению , необходимо поставить перед переменной точку; так что можно было бы набрать .Z+8 для выполнения этой функции, которая добавляет 8 к содержимому Z.
  • Назначение выполняется по стандарту. = символ, например Z=8 – в котором говорится, что нужно создать константу из полного слова, содержащую 8, и сохранить ее в месте, адрес которого соответствует адресу Z. Итак Z+12=14 (или, как вариант 12+Z=14) помещает константу 14 в позицию, находящуюся через 12 слов после адреса Z. (Это считается плохой практикой. [ кем? ] .)
  • Операторы блока аналогичны операторам АЛГОЛА : блок начинается с BEGIN заявление и прекращено с END. Как и в Алголе, операторы завершаются точкой с запятой («;»). Когда значение вычисляется, оно сохраняется до следующего признака завершения оператора. Это означает, что значение может быть вычислено, присвоено переменной и при необходимости перенесено на следующий оператор. Альтернативно, открывающая скобка может использоваться для начала блока, а закрывающая скобка — для закрытия блока. Когда в выражение включены круглые скобки, приоритета , согласно которым сначала вычисляются выражения в скобках. используются стандартные правила
  • Условное выполнение использует IF выражение, которое проверяет условие true-false, выполняет альтернативные действия и возвращает результат.
  • Для сравнения используются такие ключевые слова, как EQL для равенства (в отличие от перегрузки символа = для той же цели), GTR для «Больше чем» и NEQибо не равны. Например, следующий код присвоит абсолютное значение Z адресу, указанному Q:
Q = (IF .Z GTR 0 THEN .Z ELSE -.Z);
  • Идентификаторы (переменные и константы) должны быть объявлены перед использованием, обычно с использованием метода OWNключевое слово. Объявление переменной обычно приводит к тому, что компилятор выделяет для нее место; при необходимости переменной может быть присвоен фиксированный машинный адрес через BINDдекларация. Эта функция в основном используется для доступа к регистрам машины или к определенным специальным адресам.
  • Подпрограммы в языке называются подпрограммами и объявляются с помощью ключевого слова ROUTINE.
  • Макросы , допускающие замену текста, объявляются с ключевым словом MACRO.
  • Язык поддерживает массивы , которые называются структурами и объявляются с помощью ключевого слова VECTOR.
  • Язык поддерживает некоторые языка программирования высокого уровня, конструкции такие как:
    • Альтернативные пути выполнения через CASE выражение
    • Цикл с использованием INCR выражение, похожее на оператор FOR в Алголе.
    • Встроенные строковые функции
    • Определенные автоматические преобразования данных (число в строку и т. д.)

Исходный пример [ править ]

Следующий пример дословно взят из Bliss Language Guide : [6]

МОДУЛЬ E1 (ГЛАВНЫЙ = УПРАВЛЕНИЕ) =
 НАЧИНАТЬ
 ПРЯМОЙ ПРОЦЕСС
     CTRL,
     ШАГ;
 ОБЫЧНЫЙ УПРАВЛЕНИЕ =
 !+
 !  Эта процедура вводит значение, работает с ним и
 !  затем выводит результат.
 !-
     НАЧИНАТЬ
     ВНЕШНЯЯ РУТИНА
         ПОЛУЧИТЬ, !  Введите число с терминала
         ПУТНУМ;   !  Вывод числа в терминал
     МЕСТНЫЙ
         ИКС,  !  Хранение входного значения
         Ю;   !  Хранение выходного значения
     ПОЛУЧИТЬ(Х);
     Y = ШАГ(.X);
     ПУТНОМ(.Y)
     КОНЕЦ;
 ОБЫЧНЫЙ ЭТАП(A) =
 !+
 !  Эта процедура добавляет 1 к заданному значению.
 !-
     (.А+1);
 КОНЕЦ
 ЭЛЮДОМ
 

Версии [ править ]

  • БЛИСС-10
  • BLISS-11 — кросс-компилятор для PDP-11.
  • БЛИСС-16
  • BLISS-16C — декабрьская версия BLISS-11.
  • БЛИСС-32
  • БЛИСС-36
  • БЛИСС-64
  • Common BLISS — портативное подмножество

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

  1. ^ Вульф, Уильям А. (23 июня 2015 г.). «Интервью с УИЛЬЯМОМ А. ВУЛЬФОМ, ОХ 477» (PDF) (Интервью). Беседовал Джеффри Р. Йост. Шарлоттсвилль, Вирджиния.
  2. ^ Перейти обратно: а б с д Это ж г Брендер, Рональд Ф. (2002). «Язык программирования BLISS: история» (PDF) . Программное обеспечение: практика и опыт . 32 (10): 955–981. дои : 10.1002/спе.470 . S2CID   45466625 .
  3. ^ Макларен, Дон (27 августа 1987 г.). «Проект, описание и план компилятора DECWest» (PDF) . Bitsavers.org .
  4. ^ да Круз, Франк (16 сентября 1987 г.). «Новости о программах Kermit для VAX/VMS» . Инфо-Кермит Дайджест (список рассылки). Проект Кермита, Колумбийский университет . Проверено 5 мая 2019 г. Kermit-32 написан на языке Bliss, «языке корпоративной реализации» DEC (первоначально разработанном в CMU). Bliss так и не завоевала популярность среди клиентов DEC; на немногих сайтах есть компиляторы Bliss.
  5. ^ «Собрание разработчиков LLVM 2017: Дж. Рейган «Портирование OpenVMS с использованием LLVM» » . YouTube . 31 октября 2017 г. Архивировано из оригинала 21 декабря 2021 г.
  6. ^ Перейти обратно: а б Руководство по языку Bliss , Digital Equipment Corporation (1987)

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

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

Загрузки [ править ]

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