СИСТЕМА СРЕДЫ ВЫПОЛНЕНИЯ

1. Компьютерно-реализуемый способ описания интерфейсов операционной системы, содержащий этапы, на которых:
принимают запрос информации, связанной с одним или более доступными интерфейсами операционной системы;
получают информацию, связанную с одним или более доступными интерфейсами операционной системы, причем эти интерфейсы операционной системы описаны с использованием системы абстрактного типа;
определяют один или более абстрактных типов, соответствующих упомянутым одному или более доступным интерфейсам операционной системы; и
соотносят отдельные определенные абстрактные типы с отдельными соответственными типами, которые соответствуют по меньшей мере одному конкретному языку программирования.
2. Компьютерно-реализуемый способ по п. 1, в котором при определении одного или более абстрактных типов дополнительно определяют характер поведения, соответствующий упомянутым одному или более абстрактным типам.
3. Компьютерно-реализуемый способ по п. 2, в котором при определении характера поведения, соответствующего одному или более абстрактным типам, дополнительно определяют характер поведения программно, посредством по меньшей мере одного бинарного контракта.
4. Компьютерно-реализуемый способ по п. 1, в котором упомянутая информация, связанная с одним или более доступными интерфейсами операционной системы, дополнительно содержит иерархически организованную информацию.
5. Компьютерно-реализуемый способ по п. 1, в котором упомянутая информация содержит информацию о версии, соответствующую по меньшей мере одному интерфейсу, типы данных отдельных параметров, относящихся к по меньшей мере одному интерфейсу, и порядок вызова этих отдельных параметров, относящихся к по меньшей мере одному интерфейсу.
6. Компьютерно-реализуемый способ по п. 1, в котором при получении информации, связанной с одним или более доступными интерфейсами операционной системы, получают информацию программно из по меньшей мере одного файла метаданных.
7. Считываемый компьютером носитель данных, содержащий считываемые компьютером команды, которые при их исполнении реализуют:
один или более модулей интерфейса прикладного программирования (API), сконфигурированных для обеспечения программного доступа к функциональным возможностям, соответствующим операционной системе;
один или более файлов метаданных, относящихся к этим одному или более модулям API, причем эти один или более файлов метаданных сконфигурированы так, что включают в себя по меньшей мере одно описание упомянутых одного или более API, причем в этом по меньшей мере одном описании использована система абстрактного типа;
один или более модулей двоичного интерфейса приложений (ABI), сконфигурированных так, что они включают в себя один или более бинарных контрактов машинного уровня для вызова упомянутых одного или более API; и
один или более сгенерированных модулей проекции языка, сконфигурированных соотносить по меньшей мере один тип системы абстрактного типа с по меньшей мере одним типом из одного или более конкретных языков программирования.
8. Считываемый компьютером носитель данных по п. 7, дополнительно содержащий команды, которые при их исполнении реализуют:
по меньшей мере одно приложение, сконфигурированное для программного определения по меньшей мере одного интерфейса, содержащегося в упомянутом по меньшей мере одном модуле API, посредством упомянутых одного или более файлов метаданных.
9. Считываемый компьютером носитель данных по п. 7, при этом сгенерированный модуль проекции языка содержит по меньшей мере один посреднический объект, сконфигурированный для эмуляции по меньшей мере одного типа системы абстрактного типа способом, свойственным упомянутым одному или более конкретным языкам программирования.
10. Считываемый компьютером носитель данных по п. 7, при этом бинарный контракт для вызова упомянутых одного или более API содержит по меньшей мере одно определение характера поведения, соответствующее по меньшей мере одному типу системы абстрактного типа.