С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Сложные вопросы можно даже в RT-11 организоватьА мой любимый "сложный" вопрос - про фортран: CALL SUB(1) - объяснить что делает данный операторКод:.TY TEST.MAC .TITLE TEST .MCALL .EXIT,.PRINT .PSECT CODE,I TEXT: .ASCIZ /I=D/ ;XXX EVEN START: .PRINT #TEXT ;PRINT .EXIT ;EXIT .PSECT DATA,D .ASCIZ /I<>D/ .END START .MAC TEST .LIN TEST/RUN I=D .LIN TEST/RUN/ID I<>D .
Большинство знакомых программеров (даже тех кто знает фортран с далеких времен) отвечает неправильно (хотя с появлением всякого дерьма вроде g77 их ответ можно принять)![]()
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Холмс и Ватсон летят на воздушном шаре, поднялись уже высоко - за облака. Ватсон не выдержал и спрашивает:
- Холмс, как Вы думаете, где мы находимся?
- В корзине воздушного шара, дорогой Ватсон, - невозмутимо ответил Холмс.
Вот у Вас как код написан неряшливо, так же неряшливо Вы и вопрос пытаетесь задать. Обратите внимание: он у Вас даже не заканчивается вопросительным знаком! А ведь известно: какой вопрос, такой и ответ. По-моему, такая неаккуратность нехороша для программиста, выглядит как неуважение к остальным...
Всего доброго.
Евгений.
Что правильно если внимательно прочитать как он написан
- - - Добавлено - - -
Здесь и заключается ошибка
То есть конечно 1 в качестве параметра передается, но есть нюанс - у фортрана аргументы векторные. С точки зрения паскаля можно считать, что они всегда var, а это уже совсем другая песня
- - - Добавлено - - -
Разумеется не неряшливый код "был, но дискеты потерялись, а потому примеров не дам"?![]()
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Ты в теме ПАСКАЛЬ И МАКРО-11 когда обсуждался опрос клавиатуры и системная библиотека фортрана уже
упоминал об этом. На самом деле, если Фортран под RT-11 такой мощный, почему до сих пор отдельной темы нет?
Исходники на нём так или иначе (для примеров) в архиве и сети есть, от простых до сложных.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Я вот помню одного Фортранщика заядлого, это был пожилой преподаватель в Универе,
он на каком-то фортране под MS DOS там что то вроде турбо-среды писал на фортране кроссворд или программу для составления кроссвордов. Типа хобби наверное. Причём фортрана в программе вузовской не было. )))
Не секрет, что языки программирования заточены для написания вполне определённых задач.
Ну как пример - Delphi это базы данных, ассемблер - это драйвера, Си - что бы троллить Паскальщиков )))
Макро-11 - просто очень правильный ассемблер, а вот Фортран? Что именно проще реализовать именно
с его помощью?
- - - Добавлено - - -
в том числе я просматривал их и видел там процедуры и функции графических примитивов в духе бейсика (круги, линии, точки), вот как с ними? Где и в каких условиях они рассчитаны на использование под RT-11?
Последний раз редактировалось hobot; 06.12.2016 в 01:01.
Я попытку ответа сделаю основываясь на опыте ПАСКАЛЬ + МАКРО11 и сторонние obj библиотеки,
такая команда вызывает глобальную процедуру (функцию) SUB и передаёт ей входящий параметр = 1.
- - - Добавлено - - -
в чём вы видите неряшливость кода? вы листинги Корчагина видели ? )))
Я ж не просто так привёл анекдот про Холмса: строка CALL SUB(1) на самом деле не делает ничего. То есть вообще НИ-ЧЕ-ГО. Если кто-либо что-либо и делает, то:
1. Процессор под управлением транслятора, генерируя объектный код.
2. Процессор под управлением оттранслированной и скомпонованной программы, исполняя её код. Естественно, система команд этого кода должна совпадать с системой команд процессора. Ещё более естественно, что от строки исходного текста в исполняемом коде не остаётся ничего, даже если исходник был на языке ассемблера, не говоря уже о ЯВУ.
Что же до фортрана, то в RT-11 (и её родителях) при передаче параметров он передаёт такой мощный блок этих параметров, что паскали и прочие ассемблеры нервно курят в сторонке. Начнём с того, что в разбираемом случае он передаёт подпрограмме двеединицы. Кстати, именно из-за структуры этого блока длина имени подпрограммы фортрана ограничена 6-ю символами. И если мне не изменяет память (паскалеводы меня в случае чего поправят), то паскаль в RT11 требовал процессоров с плавающей арифметикой. Фортран же не только не требовал, но на процессоре 1801ВМ2 даже выполнял эти вычисления вчетверо быстрее паскаля. Правда, знающие люди сказали, что на оригинальном процессоре LSI-11 этих тормозов не было, но мой опыт работы ограничен только советскими ЧПУхами, а в них были только 1801ВМ1 да 1801ВМ2, да полная плата М2 от Электроники-60.
После ASCIZ ни разу нет выравнивания на границу слова. В первом разе это прокатило, поскольку получилась последовательность чётной длины. Во втором разе длина последовательности получилась нечётной, но поскольку это было в конце программы, то можно условно считать, что тоже прокатило. В любом случае транслятор поправил бы эту ошибку, от чего я и сказал не "ошибка", а именно "неряшливость". В 16-разрядной системе байтовая адресация - атавизм (вон, у 64-разрядного Крея и символьные, и целые, и плавающие, и комплексные данные имели разрядность 64 бита!), поэтому с ней надо быть поаккуратнее. Точно так же неряшливо товарищ задал и свой "сложный" вопрос, сложность которого заключается именно в неопределённости, расплывчатости, недосказанности его формулировки.в чём вы видите неряшливость кода?
Всего доброго.
Евгений.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)