vak: (бэсм-6)
[personal profile] vak
Есть у нас в коллекции ретрокомпьютерных тулов такая штука как besmc. С её помощью можно программировать на БЭСМ-6 на разных языках программирования (и их смеси). Фактически это фронтэнд ко всем имеющимся компиляторам, ассемблерам, линкеру и симулятору. Для besmc надо также установить симулятор dubna. Подробности читайте в README.

К примеру, компилируем и выполняем программу на Паскале:
$ cat hello.pascal 
program main(output);
_(
writeln('Hello, Pascal!');
_).
$ besmc hello.pascal
$ ./hello.exe
HELLO, PASCAL!
Или пусть главная программа будет на Паскале, а подпрограмма на Фортране:
$ cat caller.pascal 
program main (output);
procedure hello; fortran;
_(
hello;
_).
$ cat callee.ftn
subroutine hello
print 1000
1000 format('Hello Fortran from Pascal!')
end
$ besmc caller.pascal callee.ftn -o example
$ ./example.exe
HELLO FORTRAN FROM PASCAL!
Есть куча примеров на разных языках: смотрите examples/README.md. Список примеров:
  • Pascal — `hello.pascal`
  • Pascal-re — `hello.pas`
  • Algol-ГДP — `hello.algol`
  • Fortran-ГДP — `hello.ftn`
  • Fortran Dubna — `hello.fortran`
  • Forex — `hello.forex`
  • Assembler Madlen — `hello.assem`
  • Assembler Madlen-3.5 — `hello.madlen`
  • Assembler БЕМШ — `hello.bemsh`
  • B language — `hello.b`
  • Object modules — `stdarray.std`
  • Mixed-language: Pascal calling Fortran — `caller.pascal` + `callee.ftn`
Да, а собственно новость в том, что утилита besmc теперь поддерживает язык программирования Би:
$ cat hello.b 
main() {
printf("Hello, B!*n");
}
$ besmc hello.b
$ ./hello.exe
HELLO, B!
Примеры интересных программ на Би можно глянуть здесь: examples/b.

Исторически языка Би на БЭСМ-6 не было. Это уже современная доделка. Хотя уже тогда ничто не мешало. Просто ни в Дубне, ни в ИТМиВТ не знали про язык Би.

Date: 2026-05-24 05:09 (UTC)
x86128: (Default)
From: [personal profile] x86128
Очень круто!

Получается у нас Дубна самая удобная операционка для запуска наследия? Придумать бы как упаковать её удобную обертку и выложить на https://virtualosmuseum.org/