Хорошо. Повторюсь, я тут об онтологии языка программирования размышляю с точки зрения модели предметной области для обучающей системы.
Честно говоря, встречал только две статьи об онтологиях для языков программирования.
Одна вот:http://www.foibg.com/ijita/vol13/ijita-fv13.htm
Том 13, выпуск 4
Статья Сосновского и Гавриловой - первая.
У них написана онтология С - чисто синтаксическая. Без семантики.
Для обучения языку С, между прочим.
Вторая - в диссере Князевой (сейчас не могу найти в инете). Но там тоже была онтология конкретно паскаля и совсем конкретно, написанная прямо по грамматике...

ИМХО, в обучающей системе так нельзя.
Если мы хотим, чтоб она реально обучала программированию на некоем языке (пусть даже на Обероне), то нужно давать понятие со всех сторон. В этом смысле должно быть некое обобщенное понятие "оператор" для любого ЯВУ. Потом - некоторое более специальное понятие "оператор цикла", например. Потом еще более специализированное: оператор цикла с вычислением условия перед выполнением тела.
А уж потом - конкретный синтаксис.

Или не заморачиваться?
Ведь обучение новичков идет от частного к общему. Если говорят о циклах, то говорят о конкретном цикле в конкретном ЯВУ.
Тогда описание элементов конкретного языка - это конкретная онтология.
А обобщение - это оставим на метаонтологию.
Ы?