Пишу, по большей части, про историю, свою жизнь и немного про программирование. Живу в Казани.

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.'

кон проц
 44   2001   99   программирование