Cтраница 2
Положение каждого имени в обоих списках является существенным, так как оно служит для установления эквивалентности имен. Этих двух списков достаточно для установления эквивалентности имен, однако в разделе данных подчиненной программы необходимо задавать дополнительный набор статей. Подчиненной программе необходимо знать тип и размер значений совместно используемых данных. Секция LINKAGE должна следовать за секцией WORKING-STORAGE. Она включает статьи-описания-данного уровней 01 и 77, как и секция WORKING-STORAGE, но фразы VALUE IS для этих статей не допускаются. Секция LINKAGE не выделяет никакой памяти под данные, она просто переописывает область памяти, выделенную в главной программе, под совместно используемые данные. Использование статей описания в секции LINKAGE позволяет подчиненной программе изменять шаблоны совместно используемых данных при условии, что число литер в них остается неизменным. С этой точки зрения статьи в секции LINKAGE аналогичны фразам REDEFINES. [16]
Однако существует возможность, позволяющая подчиненной программе обрабатывать данные, принадлежащие главной программе. Это осуществляется путем установ - ления соответствия между именами, используемыми в главной программе, и именами, используемыми для тех же данных в подчиненной программе. [17]
Программа, которая вызывает в память другую программу и запускает ее, называется главной программой; вызываемая подобным образом программа называется подчиненной. Главная программа может вызывать много различных подчиненных программ. Такая последовательность вызовов показана на рис. 7.2, где программа А по очереди вызывает программы X, Y и Z. Подчиненная программа в свою очередь может вызывать свои подчиненные программы, будучи по отношению к ним главной. Соответствующая последовательность управляющих вызовов показана на рис. 7.3. В этой последовательности подчиненная программа может быть главной по отношению к любому числу ее собственных подчиненных программ. Однако подчиненная программа никогда не может вызвать ни одну из программ, главных по отношению к ней в этой иерархии. Любая программа может вызвать любую другую программу, если только вызываемая программа никогда не вызывает вызывающую программу или любую другую программу, главную по отношению к вызывающей. [18]
При решении больших и сложных задач лучше всего разбивать программу на отдельные логически самостоятельные части и поручать программирование этих частей разным программистам. Когда каждая из частей будет написана, проверена и отлажена, их можно будет объединить в одну большую программу с большей степенью уверенности в ее безошибочности, чем в случае, когда программа для решения поставленной задачи писалась бы как единое целое. Главная программа может вызывать каждую из подчиненных программ в требуемом порядке. После завершения выполнения подчиненной программы управление будет передано назад в вызывающую главную программу, которая вызовет затем следующую подчиненную программу, и так далее до тех пор, пока задача не будет полностью решена. Каждая из подчиненных программ является полной программой со всеми четырьмя разделами и со своими собственными именами файлов, записей и данных. [19]
Программа, которая вызывает в память другую программу и запускает ее, называется главной программой; вызываемая подобным образом программа называется подчиненной. Главная программа может вызывать много различных подчиненных программ. Такая последовательность вызовов показана на рис. 7.2, где программа А по очереди вызывает программы X, Y и Z. Подчиненная программа в свою очередь может вызывать свои подчиненные программы, будучи по отношению к ним главной. Соответствующая последовательность управляющих вызовов показана на рис. 7.3. В этой последовательности подчиненная программа может быть главной по отношению к любому числу ее собственных подчиненных программ. Однако подчиненная программа никогда не может вызвать ни одну из программ, главных по отношению к ней в этой иерархии. Любая программа может вызвать любую другую программу, если только вызываемая программа никогда не вызывает вызывающую программу или любую другую программу, главную по отношению к вызывающей. [20]
Для вызываемой задачи определяется, находится ли подчиненная ей программа в основной памяти. Для этого анализируется поле Д Блока управления вызываемой задачи по Таблице задач. Если значение поля Д равно нулю, то программа не находится в основной памяти и Согласование формирует для вызываемой задачи запрос на вызов программы Выборка, загружающей транзит в основную память. Выполняется SVC вызова программы Согласование, в которой rrFE, ss равно номеру Р2 программы Выборка, номер задачи, подчиненную программу которой надо загрузить в основную память, передается в регистр. [21]
При решении больших и сложных задач лучше всего разбивать программу на отдельные логически самостоятельные части и поручать программирование этих частей разным программистам. Когда каждая из частей будет написана, проверена и отлажена, их можно будет объединить в одну большую программу с большей степенью уверенности в ее безошибочности, чем в случае, когда программа для решения поставленной задачи писалась бы как единое целое. Главная программа может вызывать каждую из подчиненных программ в требуемом порядке. После завершения выполнения подчиненной программы управление будет передано назад в вызывающую главную программу, которая вызовет затем следующую подчиненную программу, и так далее до тех пор, пока задача не будет полностью решена. Каждая из подчиненных программ является полной программой со всеми четырьмя разделами и со своими собственными именами файлов, записей и данных. [22]
Программа, которая вызывает в память другую программу и запускает ее, называется главной программой; вызываемая подобным образом программа называется подчиненной. Главная программа может вызывать много различных подчиненных программ. Такая последовательность вызовов показана на рис. 7.2, где программа А по очереди вызывает программы X, Y и Z. Подчиненная программа в свою очередь может вызывать свои подчиненные программы, будучи по отношению к ним главной. Соответствующая последовательность управляющих вызовов показана на рис. 7.3. В этой последовательности подчиненная программа может быть главной по отношению к любому числу ее собственных подчиненных программ. Однако подчиненная программа никогда не может вызвать ни одну из программ, главных по отношению к ней в этой иерархии. Любая программа может вызвать любую другую программу, если только вызываемая программа никогда не вызывает вызывающую программу или любую другую программу, главную по отношению к вызывающей. [23]
При решении больших и сложных задач лучше всего разбивать программу на отдельные логически самостоятельные части и поручать программирование этих частей разным программистам. Когда каждая из частей будет написана, проверена и отлажена, их можно будет объединить в одну большую программу с большей степенью уверенности в ее безошибочности, чем в случае, когда программа для решения поставленной задачи писалась бы как единое целое. Главная программа может вызывать каждую из подчиненных программ в требуемом порядке. После завершения выполнения подчиненной программы управление будет передано назад в вызывающую главную программу, которая вызовет затем следующую подчиненную программу, и так далее до тех пор, пока задача не будет полностью решена. Каждая из подчиненных программ является полной программой со всеми четырьмя разделами и со своими собственными именами файлов, записей и данных. [24]
Программа, которая вызывает в память другую программу и запускает ее, называется главной программой; вызываемая подобным образом программа называется подчиненной. Главная программа может вызывать много различных подчиненных программ. Такая последовательность вызовов показана на рис. 7.2, где программа А по очереди вызывает программы X, Y и Z. Подчиненная программа в свою очередь может вызывать свои подчиненные программы, будучи по отношению к ним главной. Соответствующая последовательность управляющих вызовов показана на рис. 7.3. В этой последовательности подчиненная программа может быть главной по отношению к любому числу ее собственных подчиненных программ. Однако подчиненная программа никогда не может вызвать ни одну из программ, главных по отношению к ней в этой иерархии. Любая программа может вызвать любую другую программу, если только вызываемая программа никогда не вызывает вызывающую программу или любую другую программу, главную по отношению к вызывающей. [25]
Программа, которая вызывает в память другую программу и запускает ее, называется главной программой; вызываемая подобным образом программа называется подчиненной. Главная программа может вызывать много различных подчиненных программ. Такая последовательность вызовов показана на рис. 7.2, где программа А по очереди вызывает программы X, Y и Z. Подчиненная программа в свою очередь может вызывать свои подчиненные программы, будучи по отношению к ним главной. Соответствующая последовательность управляющих вызовов показана на рис. 7.3. В этой последовательности подчиненная программа может быть главной по отношению к любому числу ее собственных подчиненных программ. Однако подчиненная программа никогда не может вызвать ни одну из программ, главных по отношению к ней в этой иерархии. Любая программа может вызвать любую другую программу, если только вызываемая программа никогда не вызывает вызывающую программу или любую другую программу, главную по отношению к вызывающей. [26]
При решении больших и сложных задач лучше всего разбивать программу на отдельные логически самостоятельные части и поручать программирование этих частей разным программистам. Когда каждая из частей будет написана, проверена и отлажена, их можно будет объединить в одну большую программу с большей степенью уверенности в ее безошибочности, чем в случае, когда программа для решения поставленной задачи писалась бы как единое целое. Главная программа может вызывать каждую из подчиненных программ в требуемом порядке. После завершения выполнения подчиненной программы управление будет передано назад в вызывающую главную программу, которая вызовет затем следующую подчиненную программу, и так далее до тех пор, пока задача не будет полностью решена. Каждая из подчиненных программ является полной программой со всеми четырьмя разделами и со своими собственными именами файлов, записей и данных. [27]
Положение каждого имени в обоих списках является существенным, так как оно служит для установления эквивалентности имен. Этих двух списков достаточно для установления эквивалентности имен, однако в разделе данных подчиненной программы необходимо задавать дополнительный набор статей. Подчиненной программе необходимо знать тип и размер значений совместно используемых данных. Секция LINKAGE должна следовать за секцией WORKING-STORAGE. Она включает статьи-описания-данного уровней 01 и 77, как и секция WORKING-STORAGE, но фразы VALUE IS для этих статей не допускаются. Секция LINKAGE не выделяет никакой памяти под данные, она просто переописывает область памяти, выделенную в главной программе, под совместно используемые данные. Использование статей описания в секции LINKAGE позволяет подчиненной программе изменять шаблоны совместно используемых данных при условии, что число литер в них остается неизменным. С этой точки зрения статьи в секции LINKAGE аналогичны фразам REDEFINES. [28]