Каков режим вызова программ на языке COBOL по умолчанию? Статический или динамический? - PullRequest
0 голосов
/ 29 октября 2018

У меня недавно было интервью, и мне задали этот вопрос:

Как вызываются программы на cobol, если не указана опция компилятора? Статический или динамический?

Я ответил динамически, но я не уверен, что правильный ответ.

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Другие ответы на DYNAM верны для того, как компилятор поставляется от IBM; сделав предположение, что это компилятор IBM COBOL.

По умолчанию: NODYNAM

Тем не менее, каждая установка устанавливает свои собственные установки по умолчанию для компилятора, который в большинстве случаев устанавливает предпочтительные минимальные параметры или параметры по умолчанию, которые отличаются от значений по умолчанию компилятора. В общем, они очень отличаются от значений по умолчанию компилятора. Эти значения по умолчанию, как правило, не изменяются с течением времени для обеспечения согласованности продукта. Они не представляют отраслевые нормы или предпочтения.

Параметры компилятора задокументированы здесь для Enterprise COBOL для z / OS 6.2.0.

Обратите внимание на комментарий об установках по умолчанию:

Установка по умолчанию: Параметры компилятора по умолчанию, которые были установлены когда установлен ваш компилятор, действуют для вашей программы, если вы переопределяете эти параметры. (В некоторых установках определенный компилятор параметры зафиксированы, поэтому вы не можете их переопределить. Если у вас есть проблемы с параметрами по умолчанию, обратитесь к системному администратору.) Чтобы определить, какие параметры по умолчанию, запустите тестовую компиляцию без указания каких-либо параметров компилятора. Выходной список перечисляет опции по умолчанию, действующие на вашем сайте.

0 голосов
/ 29 октября 2018

Как вызываются программы на cobol, если не указана опция компилятора? Статический или динамический?

Это кажется хитрым вопросом, поскольку по умолчанию: CALL literal является статическим, а CALL identifier является динамическим.

См. http://publibfp.boulder.ibm.com/epubs/pdf/igy6pg20.pdf, Enterprise COBOL для z / OS, Руководство по программированию, Версия 6.2, SC27-8714-01.

Страница 338, DLL

По умолчанию: NODLL

Pge 340, DYNAM

По умолчанию: NODYNAM

Стр. 498, Выполнение статических вызовов

Когда вы используете оператор CALL literal в программа, которая компилируется с использованием параметров компилятора NODYNAM и NODLL, происходит статический вызов . С этими опциями все буквальные вызовы CALL обрабатываются как статические вызовы.

Страница 499, Выполнение динамических вызовов

Когда вы используете литеральный оператор CALL в программе, которая компилируется используя параметры компилятора DYNAM и NODLL, или когда вы используете CALL identifier оператор в программе, скомпилированной с использованием Опция компилятора NODLL, происходит динамический вызов .

[Акцент добавлен]

0 голосов
/ 29 октября 2018

Не совсем понятно, какой компилятор вы используете, но я нашел некоторую документацию для IBM Enterprise COBOL для z / OS 6.1.0 :

Используйте DYNAM, чтобы динамически во время выполнения динамически загружать ненастроенные, отдельно скомпилированные программы, вызываемые с помощью литерального оператора CALL для CALL, и удалять для CANCEL.

Вот пример предоставленного синтаксиса:

DYNAM option syntax

.-NODYNAM-.   
>>-+-DYNAM---+-------------------------------------------------><

Далее отмечает, что

По умолчанию: NODYNAM

Сокращения: DYN | NODYN

Таким образом, похоже, что по умолчанию используется статическое (не динамическое) с динамическим параметром компилятора.

Если вы используете не тот компилятор, обновите ваш вопрос, чтобы мы могли найти правильную версию.

...