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. Вопрос был не обо всём фортране, а об одном из его операторов. Если не чувствуете разницу, то поясню: свойства подмножества не обязательно будут выполняться на всём множестве. Более того, у фортрана есть несколько типов вызовов подпрограмм, осуществляемых по-разному.
2. Вопрос был "что делает данный оператор". Заметьте, не "как он это делает", а просто "что делает" без требования раскрыть подробности:
2.1. если Вы считаете, что он передаёт аргументы, то можно говорить о передаче аргументов, но об особенностях этой передачи говорить рано;
2.2. поскольку фортран передаёт не аргументы, а ссылки на ссылки на них, то говорить об особенности передачи аргументов просто некорректно;
2.3. однако рассматриваемый оператор не только передаёт ссылки, а ещё и передаёт управление, и тут уж "особенности передачи аргументов" совсем побоку.
Строго говоря, Ваш первый ответ про передачу единицы был верным. Не полным, далеко не полным, но формально он ещё не содержал ошибок. Ошибки посыпались, когда Вы начали раскрывать неаккуратно сформулированный вопрос.
Ай, бросьте! И обычный абстрактный ответ "Здесь и заключается ошибка"! И обычная абстрактная оговорка "То есть конечно 1 в качестве параметра передается". По его словам, Вы ответили правильно, но при этом ответили неправильно.Обычный абстрактный вопрос как дополнение к билету на экзамене )))
Гляньте на примерный кусок (к тому же ещё и неполный, там на самом деле есть ещё третья единица и собственно передача управления, которое - отдельная песня, ну и нумерацию строк я для простоты тоже опускаю) кода, генерируемого фортраном при вызове фортрановской подпрограммы:
Ваш ответ "передаёт ей входящий параметр = 1" настолько прост и наивен, что не может содержать в себе ошибку. Другое дело, что единицу фортран передаёт не эту и не там, где Вы думали. Но тем не менее он же её помимо всего прочего передаёт в конце концов!? Вон она там, самая последняя! Но товарищу надо было показать, что все вокруг негодяи, а он - Д'Артаньян, поэтому он голословно уличил Вас в недопущенной Вами ошибке, хотя бы и с оговоркой. С точки зрения логики его суждение ложно, а с точки зрения этики - подленько.Код:.PSECT $CODE ; CALL SUBROUTINE JSR R4, $OTIS ; заполнение блока параметров BLPAR ; тут должна была быть передача управления ; . . . .PSECT $DATAP BLPAR: .RAD50 /SUB / ; здесь всегда 6 символов. 1 ; количество параметров $PARAM $PARAM: $00002 ; адрес 1-го параметра, ; адрес 2-го параметра, если бы он был, ; адрес 3-го параметра ..., ; и т.д. до конца списка параметров. .PSECT $DATA $00002: 1Нет бы сказать: "Да, верно, передаёт единицу." И далее уточнить: "А как он её передаёт? И делает ли он ещё что-нибудь?" И всё было бы логично и последовательно.
Я на 77-м почти не работал (если не считать оффтопика). На ДВК - только фортран-4. Про него и веду речь.
Последний раз редактировалось Eats; 07.12.2016 в 12:39. Причина: дополнено
Всего доброго.
Евгений.
А зачем нативно?
Есть подход, когда в язык не включается вообще всё, что может понадобиться (иначе получается PL/1 или Ada, которые целиком не изучит никто), а механизмы для расширения. Комплексный тип внедряется с помощью таких механизмов, библиотечно. Это хорошее решение, потому что позволяет в самом языке описать нужные вещи. Это примерно как Oberon-X, для тех, кто в теме.
Кроме того, веришь, за 20 лет программинга мне комплексные числа не понадобились НИКОГДА.
А вот аргументы в Фортран-функции передаются только одним способом: по ссылке. На асме Z80 ты бы так никогда не делал. Неэффективно. Есть риск испортить значение переменных (если функция корявая), т.е. никакой защиты. Надёжность страдает.
Ну, меня ЯП интересуют в первую очередь в соотношении минимализма к идеалу, и если ты спросишь, имеет ли смысл в наше время работать на Фортране (хотя бы для RT-11), я скорее посоветую Паскаль. Кстати, есть ведь ещё и Modula-2 для PDP-11. Есть и Active Oberon, только это закрытая разработка. К сожалению.
- - - Добавлено - - -
AFZ, допустим, комплексные числа в Фортране есть. А вот операций для работы с матрицами и множествами нету. С прогрессиями. Нативно. То есть, я рад, что в Ф. есть комп. числа, но как язык для использования он меня не устраивает, из-за корявостей.
- - - Добавлено - - -
Уже не говоря про отсутствие работы со строками. ;-)
Patron,если не ошибаюсь охотно поделился всеми возможными версиями компиляторов и языков ещё в самом начале,
они (так вышло) немного разбросаны по архиву, но в целом легко ищутся
http://archive.pdp-11.org.ru/ukdwk_a...ranIV_GromovK/
И по моему очень интересное получается (лось) обсуждение.
Верю. А мне пару раз раз потребовались - для расчетов цепей переменного тока. Первый раз это было где-то в конце 70-х или начале 80-х, тогда я это легко и непринужденно сделал на Фортране-4 Системы-360 (в смысле, ЕС ЭВМ). Второй раз - в начале 2000-х, так я изматерился, делая это средствами Визуальной Студии!..
Работа со строками - это ни разу не вычисления. А для вычислений средств Фортрана более, чем достаточно.
Я, в общем-то, программирующий электронщик. И когда мне надо рассчитать что-то по сколь-нибудь сложной формуле, вместо возни с калькулятором, я предпочитаю по-быстрому накидать программулю, которая не ошибется, в которой, промазав по нужной клавише, не надо переделывать все сначала, которую можно выполнить в цикле раз 20-50 и, просмотрев полученную таблицу выбрать подходящий вариант...
Так вот, сейчас я это делаю, в основном, на Бейсике, а во времена ДВК - Э60 я пользовал и Бейсик, и Фортран, примерно пополам.
Настоящие программисты не используют Паскаль! (с) См., например, здесь.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Компиляторы для RT-11 я выкладывал (последние версии F77 и FORTRA) и патчи Y2K к ним (и патченые дистрибы).
На стакане и вороне тоже оба варианта есть. Но я сам никогда не разбирался в различиях языка. Помню, что в F77 можно константы определять, что компилятор его во время компиляции не пишет названия текущей компилируемой (под)программы и что в случае достижения END, программа молча выходит, а не пишет сообщение об останове. На этом все, что помню про F77 заканчивается![]()
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
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ребята ) Я хочу просто напомнить, что это не абстрактная тема о программирование вообще,
и уж точно не о правильности выбора того или иного языка программирования.
Это тема о программировании под ОС RT-11 (!) и о программировании на оборудовании DEC PDP
или совместимом.
Я не проф. программист, но по теме могу сказать вот что (частный случай УК-НЦ и любая ДВК с RT-11 на борту),
вот представьте что вам нужно что то написать системное (форматирование дискеты) - вы конечно на МАКРО-11
что то такое напишите. А представьте, что вы пишите например игру, под терминал VT52 (символьную) рогалик
какой-нибудь - неужели вы будете лопатить такой проект на макро? Это не реально. Тут либо Паскаль, либо Си,
либо Фортран (бейсик - запрещаю о нём говорить! объясню почему = системный бейсик слишком специфичный,
вильнюс бейсик полная фигня).
И так я на УК-НЦ выбрал для себя ПАСКАЛЬ+МАКРО11 как связку, поскольку у меня старшие товарищи пользуясь
тем же достигали видимых, реальных результатов, приблизиться к которым мне хотелось.
Поверьте я не встретил ни одного разработчика ПО в Зеленограде в то время кто бы писал на Фортране )))
Ни одного кто бы писал на BASIC-11 и ни одного кто бы писал что-то кроме шуток на вильнюс бейсике.
На Си как видно из архива писали для УК-НЦ, но это тогда мне было не известно (пример софт от OlegH.)
И ещё момент (!) посмотрите архив - все библиотеки со вспомогательными процедурами и функциями
написаны для Паскаля. Был (до сих пор не обнаружен) так же очень правильный спрайтовый движок
для Паскаля или Макро-11 (мог одинакого использоваться и там и там).
Поэтому на уровне хобби и учитывая возможности железок - программисты на Паскале таки писали )))
Паскаль преподавали, а Фортран уже нет. Так же никто не преподавал Модулу ! Ассемблер приходилось осваивать практически самостоятельно.
В обще школьная программа предпочитала Вильнюсовский Бейсик. А в качестве "инженерного" языка
всё время пыталась подсунуть вам Фокал ))) Хотя его УК-НЦ вариант не так уж и плох для вычислений
и инженерной графики ?
- - - Добавлено - - -
Я же писал выше о специфике выбора языка не случайно.
Те задачи которые решает AFZ ему удобнее решить на Фортране или Бейсике.
Быстро и точно для работы. Это и есть практическое (прикладное) программирование.
form системщик ) Он всех отформатирует если что ) Какой уж там Паскаль, хотя
и он Паскаль под MS DOS использовал для чего-то.
Oleg N. Cher, у тебя свои задачи и ты используешь (на чём кстати?) ту среду разработки
которая тебе удобная или принята в конторе.
И по секрету, я знаю что Титус и Patron пишут на Си (могу конечно ошибаться).
эмулятор УК-НЦ написан на Си. Меня исходники на Си пугают например своей нечитабельностью.
Я ничего не понимаю в листинге где одни скобочки )))
- - - Добавлено - - -
PDP-11 тёпленькая и родная потому что 8-миричнаяразряднаясистема исчисления однажды впившись в мозг не спешит его покинуть + МАКРО-11 ) Но я то действительно не программист )
Последний раз редактировалось hobot; 08.12.2016 в 19:38.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)