99 бутылок: РАПИРА (КИ) и VIRT
19. VIRT. Объекно-ориентированный язык. По синтаксису напоминает Object Pascal, Modula 2, Modula 3 и Oberon. Особенности. Специальные конструкции языка позволяют легко задавать списки и деревья, есть возможность перегрузки операторов «+», «-», «[]» и тому подобных, конструкции обработки исключительных ситуаций, вычисления языковых конструкций и многое другое.
Пара слов о реализации. Отступы в программе осуществляются при помощи пробелов, табуляции интерпретатор не любит, кроме того не любит он пробелов между именем функции и скобками. Но это не самое странное. Реализованный язык, по всей видимости, не дает использовать многобуквенные переменные, по крайней мере внутри функций. Так что, если вдруг, будьте внимательны.
На сайте есть компонент (45$) для Delphi, позволяющий использовать интерпретатор в качестве внутреннего языка для какого-либо проекта.
Программа, выводящая песню о пиве (beer.w).
-- Песня о пиве. Написал Евгений Степанищев
function PrintBeer(n)
s := ''
if n<>0 then
s := s+str(n)
else
s := s+'No'
end
s := s+' bottle'
if n<>1 then
s := s+'s'
end
return s+' of beer'
-- Main program
P := 99
While P Do
Writeln( PrintBeer( P )+' on the wall, '+PrintBeer( P )+'.' )
Writeln( 'Take one and pass it around,' )
P := P-1
Writeln( PrintBeer( P )+' on the wall.'+EOL() )
End
Writeln( 'No more bottles of beer...' )
Writeln( 'Go to the store and buy some more...' )
Writeln( '99 bottles of beer.')
return
18. РАПИРА. Точнее некий диалект языка РАПИРА для Конструктора Исполнителей.
Среда разработки и диалект мне не понравились. Не запоминаются положения и размеры окон, расцветка хромает, после вывода ошибки происходит выход, не хватает множества функций, синтаксис, не смотря на заявление разработчика, все-таки частично регистро-зависим и т. д. и т. п.
Сам язык РАПИРА (расшифровывается, как «Расширенный Адаптированный Поплан-Интерпретатор, Редактор, Архив») был придуман, как видно из синтаксиса, в Советском Союзе для обучения программированию в школах. Похоже, что конструктивно представляет из себя простую кальку с Паскаля.
Программа, выводящая песню о пиве (Panupa для Конструктора Исполнителей).
// Песня о пиве. Написал Степанищев Евгений
фун встр (и)
старш:= и/10
младш:= и mod 10
если старш>0
возврат симв(48+старш)+симв(48+младш)
иначе
возврат симв(48+младш)
всё
кон фун
фун пиво (и)
если и=0
стр:= 'No'
иначе
стр:= встр (и)
всё
стр:= стр+' bottle'
если и<>1
стр:= стр+'s'
всё
возврат стр
кон фун
проц старт()
для и от 99 до 1 шаг -1
печать пиво (и)+' on the wall, '+пиво (и)+'.'
печать 'Take one and pass it around,'
печать пиво (и-1)+' on the wall.'
печать ''
кц
печать 'No more bottles of beer...'
печать 'Go to the store and buy some more...'
печать '99 bottles of beer.'
кон проц