PDA

Просмотр полной версии : "Утерянный" язык BLISS: идеальная кодогенерация для PDP-11



Oleg N. Cher
11.01.2026, 19:33
Просто оставлю это здесь ;)

BLISS-11 как кодогенератор для PDP-11

BLISS-11 — это диалект языка BLISS, специально адаптированный для PDP-11, разработанный в начале 1970-х в сотрудничестве между Carnegie Mellon University (CMU) и Digital Equipment Corporation (DEC). Он был создан как кросс-компилятор: хостился на PDP-10 (где хватало памяти для компилятора), но генерировал машинный код исключительно для PDP-11. Это ключевой момент — BLISS-11 не предназначен для нативного выполнения на PDP-11 из-за ограничений 16-битной архитектуры (малый объём памяти, адресное пространство). Вместо этого он фокусировался на генерации высококачественного, оптимизированного кода для PDP-11, делая его мощным инструментом для системного программирования (например, для ОС, диагностики и компиляторов вроде PDP-11 FORTRAN IV-PLUS).

Оригинальные исходники компилятора BLISS-11 (как и бинарники для PDP-10) действительно считаются утерянными в публичном цифровом доступе. Мои поиски по веб (включая GitHub, bitsavers.org, trailing-edge.com, архивы DECUS и форумы вроде retrocomputing) не выявили полных исходников. Есть только tape images для PDP-10 (с бинарниками BLISS-36/10, но не BLISS-11), manuals и исторические описания. Однако, на основе детальных документов (в частности, статьи Ronald F. Brender из 2002, которая основана на внутренних DEC/CMU материалах), можно реконструировать, как BLISS-11 устроен как кодогенератор. Я опираюсь на это, чтобы описать архитектуру — это closest к вашему интересу.

Общая архитектура BLISS-11 как компилятора/кодогенератора

BLISS-11 был полностью переписан по сравнению с BLISS-10 (для PDP-10), с акцентом на оптимизацию кода для ограниченной PDP-11. Он следовал "генеративному" подходу: переводил высокоуровневый код BLISS в эффективный машинный код PDP-11 "на лету", с пост-проходами для уточнения. Компилятор был однопроходным в основном, но с элементами multi-pass для оптимизаций. Ключевые принципы:

Типлессность и низкоуровневый доступ: BLISS — типлессный язык (все данные — машинные слова), что позволяло прямой доступ к hardware PDP-11 (регистри, память). Это делало его "ассемблером высокого уровня" с фокусом на качество кода, а не на абстракциях.Оптимизация под PDP-11: PDP-11 имел 16-битные слова, 8-битные байты, отсутствие byte-pointers и ограниченную память (64KB). Компилятор минимизировал overhead: генерировал компактный код, оптимизировал под sign/unsigned (инструкции вроде MOVB с sign-extend), и полагался на программиста для глобальных оптимизаций (локальные — на компиляторе).Bootstrapping и кросс-компиляция: BLISS-11 сам был написан на BLISS-10. Для генерации кода: исходники на BLISS-11 компилировались на PDP-10 в объектный код PDP-11, затем переносились (на лентах или перфокартах) на PDP-11 для выполнения. Нет нативного self-hosting на PDP-11.
Структура компилятора (на основе описаний Brender):

Фронтенд (парсер и препроцессор):

Парсит BLISS-код: выражения (expression-oriented, без statement/expression различия), структуры (алгоритмические, как векторы/матрицы с вычисляемыми offset).Новый макро-система: lexeme-based (простые, условные, итеративные макросы). Например, итеративный макрос для повторений (INIT_LOCAL_VEC для векторов).Лексические функции (%count, %length) для compile-time вычислений, улучшающие кодогенерацию.
Средний уровень (анализ и оптимизации):

Нет сложных IR вроде CFG+SSA или Sea of Nodes — простая генерация "на лету".Локальные оптимизации: константное сворачивание, удаление мёртвого кода, оптимизация под PDP-11 регистры (8 регистров, включая PC/SP).Адаптации для hardware: переформулировка byte-операций (Y<1,1> = .X<0,1> для байтов), unsigned операторы (EQLU, LEQU), атрибуты BYTE/WORD для аллокации.Контроль потока: Добавлены labels для escape (leave label [with expr]), упрощающий циклы/ветвления по сравнению с BLISS-10.
Бэкенд (кодогенератор):

Генерирует PDP-11 машинный код напрямую: использует machop для декларации PDP-11 инструкций (например, прямой маппинг на ADD, SUB, BIS).Фокус на качестве: Минимизация инструкций для 16-бит адресации (zero-extend для subword, чтобы избежать overhead sign-extend). Нет floating-point (PDP-11 не имел hardware в ранних моделях).Пост-проходы: После базовой генерации — уточнение (peephole optimizations) для PDP-11 специфики, как оптимизация под режимы адресации (регистр, deferred, auto-increment).Вывод: Relocatable object modules (.OBJ) для линковки с PDP-11 ассемблером/linker.
Плюсы как кодогенератора для PDP-11

Эффективность: Генерировал код, близкий к ручному ассемблеру, но с читаемостью (структуры, циклы без goto). Использовался в реальных продуктах: PDP-11 FORTRAN IV-PLUS (компилятор на BLISS-11), диагностика DEC, Hydra OS в CMU.Гибкость: Typeless + machop позволяли fine-tune под PDP-11 (например, прямой доступ к регистрам как переменным).Компактность: Оптимизации под малую память — ключ для PDP-11 (например, в RT-11 или RSX-11).
Минусы

Сложность bootstrapping: Зависимость от PDP-10 для компиляции.Ограничения: Нет глобальных оптимизаций (phase ordering problem); floating-point опущен; не self-hosted.Устарелость: Для современных эмуляторов (SIMH PDP-11) можно использовать later диалекты вроде Common BLISS, но не оригинал.
Где искать дальше (если не утеряно полностью)

Tape images: На trailing-edge.com есть PDP-10 tapes с BLISS-36 (BB-J941F-BB), где могут быть .BLI файлы (BLISS sources) для BLISS-11 cross-compiler. Скачайте, монтируйте в SIMH эмулятор PDP-10, и проверьте директории /bliss/ на SIX12.BLI (упомянут как ~1779 строк для BLISS-10, но возможно части для -11). Это не чистые PDP-11 sources, но bootstrap-части.Архивы CMU/DEC: Kilthub.cmu.edu имеет manual BLISS-11 (1970s), но не код. Контакт с CMU archives или DECUS (если сохранились microfiche).Современные альтернативы: GitHub sergev/bliss-compiler (BLISS-M) — portable cross-compiler с LLVM backend, может генерировать PDP-11-like код (хотя не оригинал). Для эмуляции: используйте с SIMH PDP-11.Насчёт бэк-энда LLVM для PDP-11 Грок походу приврал, но жаль, что всё утеряно. А то был бы у нас "фирменный" "идеальный" язык для PDP-11. :)

Hunta
11.01.2026, 19:47
был бы у нас "фирменный" "идеальный" язык для PDP-11
Что бы некоторые не раскатывали губу насчёт "идеального" языка, пример парочки подпрограмм на BLISS-11:


! GENERAL PURPOSE NUMBER OUTPUT ROUTINE
! -------------------------------------

ROUTINE OUTN(N,B,RD)=
BEGIN OWN NUM,NUMNP,BASE,REQD,COUNT;
ROUTINE XN=
BEGIN REGISTER R;
IF .NUM EQL 0 THEN RETURN
(OUTM(" ",.REQD-.COUNT); IF ISON(NUMNP) THEN OUTC("-"); .VREG);
R_.NUM MOD .BASE; NUM_.NUM/.BASE; COUNT_.COUNT+1; XN(); OUTC(R_.R+"0")
END;
NUMNP_ COUNT_ (.N LSS 0);
BASE_.B; REQD_.RD;
IF (NUM _ ABS(.N) AND NOT 1^35) NEQ 0 THEN RETURN XN();
OUTM(" ",.REQD-1-.NUMNP); IF .NUMNP NEQ 0 THEN OUTC("-"); OUTC("0");
.VREG
END;

ROUTINE SDDTFA(X)=
! GIVEN A SYMBOL, SEARCH DDT SYMBOL-TABLE FOR ITS VALUE
BEGIN REGISTER R;
HLRE(R,JOBSYM); R_ -.R; R_ .R^18 + .R + .JOBSYM<RH>;
WHILE (R_.R-#2000002) GEQ 0 DO
IF .(.R)<0,32> EQL .X THEN RETURN @(.R+1);
ERROR(0)
END;

Oleg N. Cher
11.01.2026, 19:53
Идеальный не в плане красоты синтаксиса, а по качеству кода.

Синтаксис да, архаичный.

Hunta
11.01.2026, 20:08
по качеству кода
Поскольку написать, странслировать и проверить - не на чем - чего там с качеством кода - только по слухам. Ну может ещё в DRPFN.MAC покопаться, он исходно на BLISS написан. И по поводу красоты синтаксиса и качества кода - начнётся то всё с человека, а там ТАКОЙ КРАСОТЫ синтаксис, что я уже попытки четыре делал, что бы хоть как-то въехать, но.. без транслятора, всухую.. Хрен без водки разберёшься.

И ещё момент. Исходный BLISS-11 компилятор с большой долей вероятности траслировать в .MAC, а не в .OBJ

Oleg N. Cher
11.01.2026, 20:45
Ну транслятор BLISS ведь есть. И даже не один, кажется. На GitHub. Только, увы, не для PDP-11.

Hunta
11.01.2026, 21:21
Ну транслятор BLISS ведь есть. И даже не один, кажется. На GitHub. Только, увы, не для PDP-11.
И на хуа они? Если не для PDP-11. Учитывая, что тема называется

"Утерянный" язык BLISS: идеальная кодогенерация для PDP-11

- - - Добавлено - - -

В общем, повторяется история с PL/M
Главное - что-нибудь сказать. А насколько это применимо и удобно - "я же концептуальщик, а не практик"

- - - Добавлено - - -


Синтаксис да, архаичный.
Там синтаксис не архаичный, там весьма СПЕЦИФИЧНЫЕ как синтаксис, так и семантика.
И опять же - поскольку исходного компилятора нет... Писать исключительно на бумажке и восхищатьс - какой крутой кодогенератор

Oleg N. Cher
11.01.2026, 21:45
PL/M повезло больше. Компилятор отреверсили.
И хотя я бы натянул на PL/M какой-то более вменяемый синтаксис, раз уж ничего лучше по кодогенерации для 8080 у нас нет.

BLISS остаётся вещью в себе.

А почему вы с парнями не завели хотя бы какой-то компилер Модулы-2 ?

Hunta
11.01.2026, 22:40
А чего его заводить. Компилятор есть. От Вирта + компания. Исходно - под RT-11, с моей доработкой - под RSX. Но сам по себе компилятор - это не всё, нужны ещё всякие библиотеки.

Oleg N. Cher
12.01.2026, 14:50
А в чём сложность с библиотеками? Их просто никто не пишет? Или никто и не пробовал писать?

- - - Добавлено - - -

Хунта, вообще довольно странная реакция на тему про BLISS. Такое ощущение, что мне надо было выкатить с пяток компилеров BLISS для PDP-11 с исходниками, с облагороженным лично мною синтаксисом, а докучи ещё гору игр и софта, а заодно пару операционных систем на BLISS. И тогда бы ты смягчился. Ну сорян. Я просто хотел узнать чо народ думает по теме.

Hunta
12.01.2026, 14:57
А в чём сложность с библиотеками?
Много писать придётся. Или на Modula-2 (если использовать мой подход-архитектуру) или на языке ассемблера (если использовать подход киевлян). Я начинал, но тут мне в руки попал DSMAC и смысл в Modula-2 пропал.

- - - Добавлено - - -


Я просто хотел узнать чо народ думает по теме.
Ржу не могу. А кто про него что-то знал и пробовал разбираться? Только тогда могут быть интересные мысли, а не такие, как у тебя - О, ВОТ ЕЩЁ КРУТОЙ ЯЗЫК.. Я НИКОМУ НИЧЕГО НЕ ДОЛЖЕН... ДА ПОШЛИ ВЫ ВСЕ"

И тогда бы ты смягчился.
Всё, что я думаю о BLISS (так как я хоть как-то пробовал с ним возиться и собирать инфу - так что имею право на высказаться) - я уже высказался. На текущий момент язык МЁРТВ, а информации адекватной нет - только слухи, что кто-то что-то где-то написал.. По памяти.
Так что - не взлетит и серебрянной пулей не станет

Lethargeek
12.01.2026, 16:19
Типлессность и низкоуровневый доступ: BLISS — типлессный язык
:v2_sick:

Hunta
12.01.2026, 16:24
Ну как смог товаристч - так и перевёл.. "И эти люди запрещают мне ковыряться в носу!"

Oleg N. Cher
12.01.2026, 16:46
"О, ВОТ ЕЩЁ КРУТОЙ ЯЗЫК.. Я НИКОМУ НИЧЕГО НЕ ДОЛЖЕН..."А что, должен? И когда успел задолжать? ;) А ты кому-то чего-то должен? Или просто пилишь чего пилится, и никто тебя не шпыняет.

- - - Добавлено - - -

Дело не в мёртвости BLISS'а. Ты понимаешь такой интерес - синтезировать из идей новые идеи. А тебе всё готовенькое подавай. Вдруг там идеи есть интересные. На которых можно создать свой язык.

Hunta
12.01.2026, 16:52
Ты понимаешь такой интерес - синтезировать из идей новые идеи.

Вдруг там идеи есть интересные.

Ну и где идеи? Ах да, ты же никому ничего не должен.

Oleg N. Cher
12.01.2026, 17:13
Идеи в BLISS'е. Но у нас с тобой, как я понимаю, разные подходы к средствам разработки. Ты предпочитаешь что-то полностью готовое, а я просто кручу абстрактные идеи в голове. Но мир идей - тут кому что нравится, на всех не угодишь.

Между прочим, не брать на себя лишних обязательств - это одна из составляющих успеха. Я взял на себя обязательства поддерживать XDev и посильно помогать людям её освоить. Этого конечно недостаточно?

Оберона для PDP-11 в природе не существует. Для Модулы некому писать библиотеки (чем DSMAC лучше Модулы?).

Ты вот тоже что-то странное пилишь. Почему именно на C#? Зачем тянуть эти ваши дотнетики? Уже писал бы сурово, на нативе. Но ладно, делай как знаешь.

Hunta
12.01.2026, 17:34
Ты предпочитаешь что-то полностью готовое
DSMAC существенно доработан мной. Можно легко сравнить то, что было (и было взято как основа) в RSX+ и то, что есть сейчас (благо написанное мной с использование DSMAC доступно на моём недосайте.

Когда мне понадобился дизассемблер для PDP-11, я посмотрел на готовое (включая IDA), оно мне не понравилось - и был написан (мной, с нуля) DisAsm-11, в который постепенно была добавлена расширяемость, так что помимо уже добавленного VAX - можно ожидать другие процессора.

Когда мне понадобилась утилита для распаковки образов, я посмотрел на готовое, решил что за основу можно взять TU68fs, переписал для начала его с C на C#, а потом существенно расширил. И появился ImageUtils. И опять же - образы, которые он умеет распаковывать - уже не ограничены только PDP-11 и только ФС от ОС c PDP-11. По мере свободного времени - будет добавляться и создание образов.

На очереди - существенное расширение функционала DisAsm, так как существующие инструменты с нужным мне функционалам - не устраивают. Поэтому очередная более-менее устраивающая программа переписывается на C# и её функционал будет добавлен в DisAsm

Так что твоё

Ты предпочитаешь что-то полностью готовое
очередное враньё.


Оберона для PDP-11 в природе не существует
И? Мне он как бы не нужен. Если же твоя фраза про то, что он нужен тебе - флаг в руки.


Для Модулы некому писать библиотеки (чем DSMAC лучше Модулы?).
Тем, что из MACRO-11 уже доступны системные вызовы и разные библиотеки. Плюс - мои основные проблемы при написании на MACRO-11 DSMAC более менее решил - как я уже писал - именно тогда доработки для написания программ на Modula-2 под RSX остановились.


Почему именно на C#
Потому что я его знаю и возможности как C#, так и .NET+VS позволяют мне писать БЫСТРО и получать программы, которые я могу использовать - то, что мне нужно и не хватает на PC


Уже писал бы сурово, на нативе.
На каком нативе?


Между прочим, не брать на себя лишних обязательств - это одна из составляющих успеха.
А это вообще к чему?


Ты вот тоже что-то странное пилишь.
Я пилю то, что мне нужно или интересно. Кому-то оно кажется странным - скатертью по Ж.

Oleg N. Cher
12.01.2026, 17:43
очередное враньё.Ну молодец, молодец. Тогда к чему нытьё "для Модулы нет библиотек" и т.п.?


И? Мне он как бы не нужен. Если же твоя фраза про то, что он нужен тебе - флаг в руки.Ну так в Pdp11Dev (https://github.com/Oleg-N-Cher/Pdp11Dev) уже есть всё, что мне нужно.


На каком нативе?Да на любом.


А это вообще к чему?А это вообще к тому, что вот эти ваши горестные ожидания "Тебе же ничего не нужно". Т.е. ты сам пилишь чего тебе хочется и на чём хочется, а мне, получается, нельзя. Потому что форумчане не так поймут. Не оправдывает их ожиданий.


Я пилю то, что мне нужно или интересно.Вот именно.

Hunta
12.01.2026, 17:56
Тогда к чему нытьё
Это констатация факта. И поскольку этот вариант оказался мне не нужным - я и не стал писать эти библиотеки.

Ты уж определись

Оберона для PDP-11 в природе не существует.
или

Ну так в Pdp11Dev уже есть всё, что мне нужно.


Да на любом.
То есть опять фраза ни о чём.


мне, получается, нельзя.
Много напилил на PL/M ? Ничего? А другим предлагаешь?
Много напилил на BLISS? Тоже ничего? И тоже предлагаешь?


Вот именно.
И при этом не говорю другим - как нужно и не предлагаю другим то, что не или слабо знаю. В отличии от.

- - - Добавлено - - -


Уже писал бы сурово, на нативе.
Немного в сторону оффтопа (так как товаристч отказался уточнять по поводу - что в его понимании - натив). Многие (наверное) в качестве языка программирования используют C. Мне этот язык НЕ нравится от слова совсем в силу многих причин. MS при разработке C# значительное количество корявостей поправила. Именно поэтому я счёл возможным его использовать при разработке под Windows. Семейство Unix систем мне тоже не нравится и тоже по многим причинам. Именно поэтому я не рассматриваю это семейство как ОС для домашних компов.

Обсуждать - чего не понравилось в C и в Unix-ав - не интересено, просто констатация фактов.

Oleg N. Cher
12.01.2026, 18:11
Это констатация факта. И поскольку этот вариант оказался мне не нужным - я и не стал писать эти библиотеки.Логично.


Ты уж определисьУ меня Оберон для разработки под БК и УКНЦ есть. Да, через трансляцию в Си и GCC, но большего мне пока не понадобилось.


Много напилил на PL/M ? Ничего? А другим предлагаешь?
Много напилил на BLISS? Тоже ничего? И тоже предлагаешь?Да. Я просто представляю, что другие могут подходить к этим языкам так же, как и я - как к набору идей. Но PL/M не утерян и его можно попытаться использовать. Было бы желание. Мне пока не понадобилось.


И при этом не говорю другим - как нужно и не предлагаю другим то, что не или слабо знаю. В отличии от.Да, ты просто на психику давишь своей суровой непреклонностью. А что ты сделал для Спектрума? И так далее.


Мне этот язык НЕ нравится от слова совсем в силу многих причин.Ну на Паскале пиши, делов-то. Мало ли что ещё есть нативное. Rust или Zig, Go накрайняк. OCaml.

Мне нравится позиция: "я делаю что хочу, а вот ты не делаешь, что я хочу"

Hunta
12.01.2026, 18:47
У меня Оберон для разработки под БК и УКНЦ есть.
То есть

Оберона для PDP-11 в природе не существует.
"Поздравляю, господин Соврамши"


одходить к этим языкам так же, как и я - как к набору идей.
Что бы что то оценить, даже как просто набор идей - надо эти идеи попробовать применить на практике. Чего у тебя в значительном количестве отсутствует как класс.


на психику давишь своей суровой непреклонностью
"Хунта - суровый негодяй, всех задавил"


А что ты сделал для Спектрума?
Мы в теме про спектрум?


Ну на Паскале пиши, делов-то.
Чуть получше, чем с C, но та же хрень.


Мало ли что ещё есть нативное
Критерии нативности в студию. А то пока только - бла-бла-бла - нативное.
К тому же, любитель нативности. При запуске среда выполнения программ на C# в момент обращения к методу - дотранслирует его в родной машинный код под платформу (если не сказано другое) выполнения. То есть - на 32-битной Windows будет 32-битный код, а под 64-битный - 64-битный. Куда уж как нативней, в отличии, скажем, от собранного 32-битного приложения C на 64-битной Windows.


а вот ты не делаешь, что я хочу
Ну так суровый Хунта давит на психику - ноблис оближе

Oleg N. Cher
12.01.2026, 23:16
"Поздравляю, господин Соврамши"Чего к словам придираешься. Тебе сейчас святая троица популярно объяснит: то, что у фюрера - это не Оберон, а неправильный подход через Си и т.п. Вот я так и сказал: Оберона нет, но если надо, тогда есть. :)

Повторюсь: "настоящего" компилятора Оберона для PDP-11 нет. То, что есть, только через трансляцию в Си. Если это можно назвать Обероном, тогда пожалуйста. Если ниже вашего достоинства - тогда не надо. Только хватит вот этих придирок. А то ты уподобляешься святой троице.


Что бы что то оценить, даже как просто набор идей - надо эти идеи попробовать применить на практике. Чего у тебя в значительном количестве отсутствует как класс.У меня в значительном количестве присутствует много чего. Но сейчас я просто пришёл потрындеть про языки. И не надо приписывать мне какие-то другие мотивы и ждать от меня чего-то большего. Я не призывал тебя или кого-то другого писать на BLISS. У меня просто возникла робкая надежда: а вдруг компилятор всплывёт? Может он хранится у кого-то в виде пачки перфокарт? ;) Наконец, интересно кто чего скажет про BLISS.


Критерии нативности в студию. А то пока только - бла-бла-бла - нативное.Нативное, то, что в виде бинаря содержит машинный код железного процессора, на котором работает. То, что запускается в виде родного приложения в ОС, для которой предназначено. Если нужно своё дополнительное окружения в виде VM или интерпретатора, тогда уже не нативное.


Куда уж как нативней, в отличии, скажем, от собранного 32-битного приложения C на 64-битной Windows.Здесь на форуме много любителей старых виндоусов, которые могут принципиально не устанавливать дотнет. Так что походу тебе важнее эстетика языка, а не выхлоп.

Ирония ситуации в том, Хунта, что мне вообще не интересно то, что ты делаешь или делал. Поэтому я могу сказать, что ты не сделал ничего. Тебе конечно пофиг, но вот сейчас ты именно так и поступил. Списки ему ещё какие-то. Ты берёшь на себя роль строгого директора, а мне, собеседнику, оставляешь роль менеджера низшего звена, который должен предоставить полный отчёт и оправдываться. Тогда как директор будет орать и требовать.

А когда я в таком ключе общаться отказываюсь, ты радостно потирая ручки кричишь "Слив засчитан". Хотя засчитан не слив, а твой наброс на вентилятор. Да я уже было грешным делом начал обдумывать список, но вовремя понял, что на тебя всё равно не угодишь.

Давай завязывать. За тобой последнее слово, раз уж по-другому не можешь.

- - - Добавлено - - -

А вот писать на PL/M я и правда советовал. Но не с позиции "я мега-гура, чья корона подпирает небо, все на колени!", которую всё пытается мне вменить святая троица и иже с ними, а "я тоже не во всём разобрался, давайте разбираться вместе". Чувствуешь разницу?

Hunta
12.01.2026, 23:22
а вдруг компилятор всплывёт?
Он есть. В виде исходников на BLISS.
Но раз ты

пришёл потрындеть про языки
тебе от этого ни жарко ни холодно.

И - поскольку исходники есть - у меня была мысль раскрутить их до исполняемого на PDP-11 компилятора, но почитав про язык и посмотрев на исходники, я понял - на замену DSMAC мне он не годится от слова совсем.


много любителей старых виндоусов, которые могут принципиально не устанавливать дотнет
Ну если старей Windows XP - то да. Но это уже проблемы любителей.


Если нужно своё дополнительное окружения в виде VM или интерпретатора, тогда уже не нативное.
Ок, раз .NET не нужно VM и/или интерпретатора, значит у меня всё нативное

Oleg N. Cher
12.01.2026, 23:48
Как скажешь.

А на исходники компилятора BLISS для PDP-11 было бы интересно взглянуть. Ссылочкой не поделишься?

- - - Добавлено - - -


Ок, раз .NET не нужно VM и/или интерпретатора, значит у меня всё нативное
запускается в виде родного приложения в ОС, для которой предназначено.NET это ОС? Нет. Это и есть VM.

содержит машинный код железного процессора, на котором работает.exe'шник для .NET содержит виртуальный байт-код, а не машинный код процессора, на котором работает.

Так что моим критериям нативности не удовлетворяет.

- - - Добавлено - - -


у меня была мысль раскрутить их до исполняемого на PDP-11Помнишь, что написал Грок? Что компилятор для PDP-11 в саму PDP-11 не поместился, поэтому его хостили на PDP-10. Была кросс-компиляция.

Я не очень понимаю, почему PDP-10 мощнее, чем PDP-11. Надо у Грока спросить.

- - - Добавлено - - -

А-а-а, наверное PDP-11 был просто более портативный.

Hunta
12.01.2026, 23:52
Ссылочкой не поделишься?

Где то в интернете


Если нужно своё дополнительное окружения в виде VM или интерпретатора, тогда уже не нативное.

.NET это ОС? Нет. Это и есть VM.

Переобувка находу.

Ещё раз - выполняются машиные команды физического процессора. Никой VM или интерпретации. А раз уже ТАК не нравится, что исходно всё это хранится в виде кода для виртуального процессора, то есть утилита ngen, на выходе которой от команд этого виртуального процессора не остаётся ничего - только команды реального процессора.

.NET - по сути набор библиотек времени выполнения. Так же как, скажем, в C или C++ - есть библиотеки времениы выполнения, без которых готовая программа не запустится

- - - Добавлено - - -


Помнишь, что написал Грок? Что компилятор для PDP-11 в саму PDP-11 не поместился
И что? Кого это останавливает?


Я не очень понимаю, почему PDP-10 мощнее, чем PDP-11
А ты думал, что мощность росла при росте номера? Разочарую - PDP-10 - класса мэйнфреймов, PDP-11 - миникомпьютеров

И к тому же -

компилятор для PDP-11 в саму PDP-11 не поместился
причина была не в скорости процессора, а в доступных ресурсах

Oleg N. Cher
12.01.2026, 23:54
Где то в интернетеСпасибо. Очень информативно. Значит очередной трындёж. Слив засчитан.

Hunta
12.01.2026, 23:59
Значит очередной трындёж
Мало волнует. Есть ДЕЙСТВИТЕЛЬНО интересно, найдешь, если потрындеть - значит потрындишь. В первый раз, что ли.

Oleg N. Cher
13.01.2026, 00:01
У меня нет уверенности, что это где-то всплыло, поэтому не найду. А тебе верить - ну такое.
Если и правда всплывёт, будет хорошо. А так на твоей совести, враль-не враль, фиг поймёшь.

Hunta
13.01.2026, 00:04
Слив засчитан.


У меня нет уверенности, что это где-то всплыло, поэтому не найду. А тебе верить - ну такое.



MODULE CODE(TIMER=EXTERNAL(SIX12))=
BEGIN
!
! CODE MODULE
! ------------
!
! SEPT. 1972
! WULF,JOHNSSON,WEINSTOCK
! LATER ADDITIONS:
! LEVERETT,KNUEVEN
!
!
! THIS MODULE PRODUCES THE ACTUAL PDP-11 MACHINE CODE. IT IS
! EXECUTED AFTER DELAYING AND TEMP-NAME BINDING. THEREFORE ESSENTIALLY
! ALL RELEVANT INFORMATION IS KNOWN. THE PRIMARY FUNCTION OF 'CODE',
! IN ADDITION TO GENERATING THE CODE, IS TO DO THE (RATHER EXTENSIVE)
! SPECIAL CASE ANALYSIS TO PRODUCE LOCALLY OPTIMAL CODE. THUS, FOR
! EXAMPLE, IT IS CODE THAT DETERMINES THE OPTIMAL SEQUENCE OF MASKING,
! ROTATE AND/OR SHIFT, AND 'SWAB' INSTRUCTIONS TO ISOLATE A SUBFIELD
! AND TO ALIGN IT AT A SPECIFIED LOCATION IN A WORD.


- - - Добавлено - - -


У меня нет уверенности, что это где-то всплыло
У меня тоже не было - но нашёл

- - - Добавлено - - -



MODULE ROTSHIFT=
BEGIN

%< The BLISS-11 out of line shift and rotate routines >%

! As specified by the BLISS-11 definition, shifts are
! arithmetic (sign-extending) and rotates include the hardware
! carry bit. Further details of the operation of the shift and
! rotate operations are implicit in the definitions of the
! PDP-11 hardware instructions ASL, ASR, ROL, and ROR.
!
! March 1973
! R. Levin
! R. Johnsson

Oleg N. Cher
13.01.2026, 00:14
Ну так где ссылка? Сложно скопипастить?

Хунта, я понимаю, что я ничего полезного на твой взгляд не делаю. Но и ты тоже на мой взгляд ничего полезного не делаешь. Игр для Спектрума не пишешь, библиотек для Модулы-2 тоже. А асмы-хуасмы и утилиты - мне и нафиг не надо. А к Модуле ты подошёл не как к своим асмам (как разработчик к конструктору), а как "дайте мне всё готовое". Наверное это Вирт виноват, что библиотек для бэкашки десятой не понаписал. И для УКНЦ ;)

Так что мы квиты. Не хочешь давать ссылку - хрен с тобой.

Hunta
13.01.2026, 00:23
Ну так где ссылка? Сложно скопипастить?
O:\Arc\DEC\PDP-11\Common\Software\Langs\Bliss-11\bliss-11.tar.gz
Полегчало?


А к Модуле ты подошёл не как к своим асмам (как разработчик к конструктору), а как "дайте мне всё готовое". Наверное это Вирт виноват, что библиотек для бэкашки десятой не понаписал.
О да, очень готовый был компилятор Modula-2 для RSX. Он и сейчас у меня работающий есть.


И для УКНЦ
Ну что взять с человека, который "мимо пробегал" и не знает, что а) в составе поставки для УК-НЦ ЕСТЬ компилятор и худо-бедно - библиотеки под RT-11. И что это позволит до определённой степени писать программы

для бэкашки десятой

Так что иди... мимо... как обычно

- - - Добавлено - - -


Игр для Спектрума не пишешь
Ещё раз - мы не в разделе Спектрума

Oleg N. Cher
13.01.2026, 00:28
O:\Arc\DEC\PDP-11\Common\Software\Langs\Bliss-11\bliss-11.tar.gzОчень остроумно, угу. Уминяестьникамунидам.


Ну что взять с человека, который "мимо пробегал" и не знает, что а) в составе поставки для УК-НЦ ЕСТЬ компилятор и худо-бедно - библиотеки под RT-11. И что это позволит до определённой степени писать программыНу что взять с человека, которому нужен только PDP-11 и RT-11. А мне Модулу надо "для всего". Не такую. А тебе не надо ожидать от собеседника специфических фанатских знаний, тогда и не разочаруешься.


Так что иди... мимо... как обычноВзаимно.


Ещё раз - мы не в разделе СпектрумаИ что? Когда святая троица приходит в тему про Оберон и начинают затирать про свои демки и уровень знания асма - они не в разделе демок и асма. Но кого это останавливает. Ничего не умеешь, ничего не делаешь. Фи.

Hunta
13.01.2026, 00:36
Очень остроумно
Конечно.


которому нужен только PDP-11 и RT-11
Что не фраза, то вранье - уметь надо.


А мне Модулу надо "для всего". Не такую.

"дайте мне всё готовое". Наверное это Вирт виноват, что
не написал модулу для всего.


Ничего не умеешь, ничего не делаешь. Фи.
Ну да ну да - не с тебя пирмер беру

Oleg N. Cher
13.01.2026, 01:07
А вопрос про BLISS был вполне практичный. Порт игры Дурак не помещается в десятую бэкашку. Вот ищу средство как это дело ужать. А то не весь игровой контент помещается с GCC.

Так что если бы удалось запустить компиль BLISS хотя бы под эмулятором PDP-10 - уже было бы что-то. Но тебе же важнее не помочь, а унизить.

Hunta
13.01.2026, 01:33
Вот ищу средство как это дело ужать
Выбрать язык, который генерит меньший код. Но идеальный вариант - язык ассемблера - от которого воротят нос. И не надо мне говорить про переносимость - BLISS тебе её зарубит практически на корню.

Oleg N. Cher
13.01.2026, 02:28
Ага, а твой макро-асм не зарубит.

Не, Хунта. Что подходит тебе - то подходит тебе. На асм опускаться не буду. Мне интересно не столько сделать игру (для меня она только повод), сколько поразбираться с (новыми для меня) языками программирования. Интересы у меня такие.

Так что игра не самоцель, асм фу, а вот BLISS да. Тут не про переносимость, я прекрасно понимаю его проблемы и ограничения. Но я бы стал портировать с Оберона на BLISS при помощи ИИ, с последующей ручной отладкой. А твоих доработок и макросов ИИ всё равно не знает.

- - - Добавлено - - -


Выбрать язык, который генерит меньший код.Например, какой? Список в студию. ;) Надо, чтобы код был меньший, чем от GCC. Таких немного, если вообще есть. Асм не рассматриваем. Не вариант.

- - - Добавлено - - -

Навскидку: наверное Си-подобный язык А.Морозова, где надо расписывать регистры вручную. А кто-нибудь его расчехлил уже для разработки или нет?

Или LIL (https://en.wikipedia.org/wiki/Little_Implementation_Language), ещё один утерянный язык. Который когда-то поставлялся с ранним UNIX. Его компилятор я тоже нигде не нашёл.

- - - Добавлено - - -

Ну и вот ещё один мёртвый и утерянный: https://en.wikipedia.org/wiki/PL-11

anasana
13.01.2026, 04:35
O:\Arc\DEC\PDP-11\Common\Software\Langs\Bliss-11\bliss-11.tar.gz
Очень остроумно, угу. Уминяестьникамунидам.
Нуу, Олег, а это вот уже совсем лукаво было. Нормальная подсказка, же.
bliss-11src.tar.gz - третья ссылка в поисковике.. или сейчас себе сами под виндой станут создавать такие архивы? очевидно же, что с таким именем себе его и качали..
https://www.digiater.nl/openvms/freeware/v40/bliss/
и что б даже лишних калорий не тратил от напряжения - "bliss11src.tar_gz" оттуда надо переименовать в "bliss11src.tar.gz" и распаковать, например Винраром

Hunta
13.01.2026, 10:21
Добрый день, Алексей :)
Надо было после его

А тебе верить - ну такое.
просто послать, но стало интересно мысль проверить и дать человеку ещё один шанс, почему и выложил "ссылку". Причём проверил и да - не просто легко, а очень легко. Но таки да - он мои ожидания не подвёл

всё готовенькое подавай.

Hunta
13.01.2026, 15:13
и утерянный: https://en.wikipedia.org/wiki/PL-11
Ну я бы не сказал, что совсем утерянный. Какой-то компилятор у меня есть, внутри выглядит вполне прилично, но при попытке использовать улетает в область памяти, где нули, что, вестимо, приводит к HALT