/rapture

An interpreter for the Rapira (Рапира) programming language

Primary LanguageKotlinOtherNOASSERTION

Rapture

GitHub release (latest SemVer)

Rapture is an interpreter for Rapira (Рапира), a programming language created in the Soviet Union during the 1980s.

функ фибоначи(=>n)
    если n = 0 то
        возврат 0
    все
    если n = 1 то
        возврат 1
    все
    возврат фибоначи(n - 1) + фибоначи(n - 2)
конец

values := <* *>
для i от 0 до 10 цикл
    values := values + <* фибоначи(i) *>
кц

вывод: values      \ Prints <* 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 *>

Rapture supports both the English and Russian variants of Rapira:

output: "Good morning!"
вывод: "Доброе утро"

Rapture was built using Kotlin and ANTLR. The Rapture logo is rendered using the Righteous font.

Usage

To run the Rapture REPL:

./rapture

To interpret a file using Rapture:

./rapture filename.rap

FAQ

What is Rapira?

Rapira (Рапира) is a programming language that was created in the Soviet Union during the 1980s. It was originally designed by Gennady Anatolievich Zvenigorodsky [1].

The original implementation of Rapira was part of Schoolgirl (Shkolnitsa) [1], an educational software system created at the Computing Center of the Siberian Branch of the USSR Academy of Science in Novosibirsk. [2, 3] The Schoolgirl system was developed “in late 1984 by a group of young graduates of the Young Programmers School, mentored by G. Zvenigorodski under the guidance of Andrei Ershov” and accompanied a course meant to teach “the basics of informatics and computing machines.” [2] It supported two languages, Robic and Rapira, used to teach programming to “children from 2nd to 10th grades.” [3]

What computers was Rapira originally used on?

Rapira interpreters existed for the Agat, Korvet, and an unspecified Yamaha computer. [1]

What languages does Rapira support?

Russian, English, and Moldovan variants of Rapira were developed. [1] Rapture only supports the English and Russian variants.

Development

  1. Clone this repository:

     git clone https://github.com/mattmikolay/rapture.git
    
  2. Build an executable rapture application in the build/install/rapture/bin directory:

     ./gradlew installDist
    
  3. If making source code changes, run unit tests:

     ./gradlew test
    

References

[1]: L.S. Baraz, E.V. Borovikov, N.G. Glagoleva, P.A. Zemtsov, E.V. Nalimov, and V.A. Tsikoza. Rapira Programming Language (Язык программирования Рапира). English URL: http://ershov.iis.nsk.su/ru/node/772586 Russian URL: http://ershov.iis.nsk.su/ru/node/772584 (visited on 09/13/2020).

[2]: “Shkolnitsa” – an Application Package for Automation of School Educational Process. URL: https://web.archive.org/web/20160401080544/http://sorucom.karelia.ru/view_thesis.html?id=17&user_id=17 (visited on 09/19/2020).

[3]: Boenig-Liptsin, Margarita. 2015. Making Citizens of the Information Age: A Comparative Study of the First Computer Literacy Programs for Children in the United States, France, and the Soviet Union, 1970-1990. Doctoral dissertation, Harvard University, Graduate School of Arts & Sciences.