Фортран для PDP-8
2012-09-22 13:48![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Внезапно (tm) в сети обнаружились исходные тексты компилятора Фортрана для PDP-8. Около двух тысяч строчек на языке PL/I. Есть смысл попробовать переписать на Си и запустить. Оцифрованную версию сложу пока тут.
Компилятор разработан Джеральдом Вильямом Сабером, и опубликован в 1971-м в качестве диссертации в высшей военно-морской школе в Монтерей, Калифорния.
PDP-8 - первый в истории успешный коммерческий мини-компьютер. Имел 6 килобайт адресуемой памяти. Позже придумали страничную организацию, и память увеличилась до 48 килобайт.
Компилятор разработан Джеральдом Вильямом Сабером, и опубликован в 1971-м в качестве диссертации в высшей военно-морской школе в Монтерей, Калифорния.
PDP-8 - первый в истории успешный коммерческий мини-компьютер. Имел 6 килобайт адресуемой памяти. Позже придумали страничную организацию, и память увеличилась до 48 килобайт.
no subject
Date: 2012-09-22 21:41 (UTC)no subject
Date: 2012-09-22 21:57 (UTC)вот если бы DEC Fortran-77 нашелся
no subject
Date: 2012-09-23 01:31 (UTC)no subject
Date: 2012-09-23 03:47 (UTC)Например:
dj i=0 to 30; code(i+2845)=float(i); end;
do i=0 to 27; code(i+2876)=write_string(i); end;
do i=0 to 39; code(i+2904)=integer io(1); end;
do 1=0 to 127; /* l3ad floating potnt package */
code(i+2944)=a56(1); code(i+3072)=a60(i);
code(i+3200)=a62(i); code(i+3328)=a64(1);
code(i+3456)=a66(i); code(1+3584)=a70(1);
code(i+3712)=a72(1); code(i+3840)=a74(i); end;
do i=0 to 109; code(i+3968)=subprogs(i); end;
/* set initial jump to main program */
code(128)=2945; /* jmp i 201 */ code(129)=130; cb=c8+2; . call scan;
И ты хочешь симулятор PDP-8 на MIPS M4K под RetroBSD?
no subject
Date: 2012-09-23 00:22 (UTC)Нет, Сережа, нет смысла попробовать переписать на Си и запустить компилятор с Фортрана для PDP-8 написанный на PL/I.
Т.е. переписать можно. По приколу. Но только пожалуйста не утверждай, что в этом есть смысл. По крайней мере естественный смысл. Понятно, что за уши смысл можно притянуть даже к этому.
no subject
Date: 2012-09-23 00:27 (UTC)declare 5ubprogs(109) bit(16) initial(0,896,1775,1152,1007,1776,1263,
563,3904,2703,3616,1774,750,750,750,1774,1264,2707,2721,1264,1007i
1777,1263,563,3616,516,1778,754,1266,2715,750,1774,2704,647,168t,
1007,3616,515,751,750,2688, 0,0,37761938,1774,1006,1774,1194,v38,
1775,1007,3616,1775,1194,1263,2746,2986,750,2743,0,3776,956,1774,
1006,1774,1212,956,1212,1775,1007,3616,516,3872,2764,3842,1775,
1776,750,751,1264,3036,2767,3904,e774,514,752,3004,0,3776,984,
1774,1006,3616,516,1774,1240,984,1775,1240,2311,3055,3311,0,2311,
1775,0,1262,2792,3032);
/* arrays a of 56 through 74 contain floating point package */
declare
a56(127) bit(16) initial(0,3776,1571,1575,896,1707,683,179,4008,
2700,689,128,1710,690,171,686,1710,692,171,4008,2711,942,
1710,1152,942/1568,686,1711,1199,943,1569,1199,943,1570,683,3654,
3590,176,693,1708,940,1708,2988,0,'00,0,0,15,3968,127,128,256,
2998,3042,3022,3039,3057,3269,3006,3013,3067,544,1572,545,1573,
546,1574,2689,548,1966,1198,549,1966,1198,550,1966,2689,2553,
2689,2554,3648,547,551,1575,3588,546,550,1574,3588,545,549,1573,
2552,2689,2529,2766,3328,683,176,3880,2944,752,1708,940,17081
0640,1709,2476,685,1664,2689,3428,3713,544,548,1572,2551,2689,
3217,3456,3088,3444,2552,2689,0,0,0),
no subject
Date: 2012-09-23 05:49 (UTC)no subject
Date: 2012-09-23 09:02 (UTC)no subject
Date: 2012-09-23 09:28 (UTC)no subject
Date: 2012-09-23 10:36 (UTC)Там есть и analyzer, и skeleton.
Но приведенные Юрой фрагменты не имеют отношения к XPL. Это runtime-библиотека компилятора:
Да, вспомнил про "Генератор компиляторов"
Date: 2012-09-23 15:27 (UTC)http://www.cs.toronto.edu/XPL/
Но это же еще хуже - зачем переписывать на Си экскременты этого динозавра? Мы что - живем вечно? Почему бы не соблюдать дисциплину и заниматься только тем, в чем есть хоть чуть-чуть смысла, даже хотя-бы смысла в порядке хобби?
no subject
Date: 2012-09-23 01:29 (UTC)no subject
Date: 2012-09-23 01:44 (UTC)А вообще надо бы в порядке диверсии привести тебя в библиотеку Стенфорда, где стоят книжки про несколько тысяч мертвых языков программирования, чтобы твой внутренний орган интересования переполнился и вышел из строя.
(При этом я вовсе не говорю, что Фортран - мертв, или что PDP-8 - плохая архитектура. Даже PL/I представляет интерес в так сказать социально-корпоративном ракурсе, но вот комбинация всего этого да еще и с Монтереем требует терапии стенфордской библиотекой)
no subject
Date: 2012-09-23 18:10 (UTC)no subject
Date: 2012-09-23 20:54 (UTC)no subject
Date: 2012-09-23 23:12 (UTC)(Я вот такое говорить уже перестал. Обижаются.)
Хотя, конечно, pdp-8 - зачотная машина :)
no subject
Date: 2012-09-23 05:19 (UTC)Уж если хочется Фортран под RetroBSD, то лучшим вариантом будет заточка f2c под существующую систему программирования.
no subject
Date: 2012-09-23 09:14 (UTC)Все началось с того, что народ стал тащить PicoC на RetroBSD. А он туда не лезет слегка. Возник вопрос, как же раньше фортран на 4 килословах работал. Я стал смотреть - оказывается, тексты есть.
no subject
Date: 2012-09-23 09:26 (UTC)no subject
Date: 2012-09-23 10:08 (UTC)no subject
Date: 2012-09-23 20:56 (UTC)no subject
Date: 2012-09-23 21:45 (UTC)остальное на macro-11
antiquesilicon.com/library/metalab.unc.edu/history/pdp-11/language/decus-C/
но все равно, это хоть относительно нормальный си
SmallC
Date: 2012-09-24 08:21 (UTC)no subject
Date: 2012-09-24 08:28 (UTC)Оверлеи
Date: 2012-09-24 08:33 (UTC)a ^ b == a + b - (a & b) << 1
Date: 2012-09-24 08:43 (UTC)