Операционные системы и программное обеспечение на платформе zSeries

     

Универсальная языковая среда Language Environment


Базовый компонент z/OS Language Environment (LE) поддерживает единую универсальную среду выполнения (run-time environment) для приложений, созданных на языках программирования высокого уровня (HLL) C/C++, COBOL, PL/1 и Fortran [28]. Языковая среда LE включает наиболее существенные и часто используемые сервисы времени выполнения, такие как формирование сообщений, обработка событий, управление памятью, поддержка функций даты и времени и т.п. Эти сервисы доступны всем приложениям, независимо от используемого языка программирования. Кроме того, LE упрощает взаимодействие между приложениями, написанными на разных языках или для разных операционных сред, за счет специальных интерфейсных средств.

Языковая среда z/OS V1R4 поддерживает приложения, полученные с помощью следующих версий компиляторов:

  • z/OS C/C++, C/C++ Compiler for MVS/ESA, AD/Cycle C/370 Compiler;
  • Enterprise COBOL for z/OS and OS/390, COBOL for OS/390 & VM, COBOL for MVS & VM;
  • Enterprise PL/I for z/OS and OS/390, PL/I for MVS & VM, VisualAge PL/I for OS/390;
  • VS Fortran, Fortran IV;
  • VisualAge for Java, Enterprise Edition for OS/390.

Приложения, написанные на HL Assembler, также могут использовать средства LE через соответствующие макровызовы.

Языковая среда LE состоит из следующих элементов (рис. 5.60):

  • базовые программы (basic routines), обеспечивающие универсальную обработку сообщений, запуск и завершение программ, динамическое распределение памяти, обработку событий (в том числе ошибок) времени выполнения, взаимодействие между программами, написанными на разных языках;
  • общие библиотеки (common library service), содержащие набор модулей для поддержки математических функций и функций даты и времени, реализуемых на основе стандартного интерфейса вызовов функций LE (callable services);
  • специфические библиотеки (language specific RTL), содержащие модули, применяемые только для одного из поддерживаемых языков HLL.


Рис. 5.60.  Универсальная среда выполнения программ Language Environment


Создаваемые с использованием универсальных модулей LE-приложения могут выполняться в различных операционных средах, включая как внутрисистемные (TSO, пакетный режим, UNIX shell), так и среды промежуточного слоя (DB2, CICS, IMS). Следует отметить, что программы, входящие в состав библиотек LE, делятся на две группы: резидентные и динамические. Резидентные программы при редактировании связей включаются в загрузочный модуль приложения. Они представлены в библиотечных наборах данных SCEELKED и SCEEBIND. К ним относятся, например, программы запуска и завершения. Динамические программы, размещаемые в библиотеках SCEERUN и SCEERUN2, не включаются в загрузочный код, а загружаются при вызове во время выполнения.

Объединяя средства, доступные в программах, написанных на разных языках, Language Environment устанавливает единую универсальную модель среды выполнения приложений, основанную на целом ряде понятий и терминов, которые следует освоить программисту:

  • Enclave - программа (главная программа вместе с подпрограммами);
  • Routine - подпрограмма, функция;
  • Process - программный код, данные и ресурсы, связанные с выполняющейся программой;
  • Thread - поток, независимо диспетчеризуемая часть процесса;
  • Local data - локальные данные подпрограммы;
  • External data - данные, доступные для любых элементов анклава.



Содержание раздела