Live data from Hacker News

Rapira (Рапира) – Soviet programming language interpreter

github.com

11–20 of 71 posts

Re: Rapira (Рапира) – Soviet programming language interpreter

#11
post #8

The playground on [demin.ws/rapira]( https://demin.ws/rapira/ ) feels well made. This is a pretty cool historical artifact. Does anyone use "native language" programming languages in education or day to day?

1C is widely used in Russia as part of 1C:Enterprise (https://en.wikipedia.org/wiki/1C:Enterprise think sap/abap)

UPD: 1C can be used in both Russian and English. And I'm pretty sure it can be used outside of 1C:Enterprise.

It also has BSL Language Server and IDEA\VSCode extensions.

Re: Rapira (Рапира) – Soviet programming language interpreter

#12
post #8

The playground on [demin.ws/rapira]( https://demin.ws/rapira/ ) feels well made. This is a pretty cool historical artifact. Does anyone use "native language" programming languages in education or day to day?

I dont use any of them, but here's a list of non-english programming languages that some people probably use day-to-day

https://en.wikipedia.org/wiki/Non-English-based_programming_...

Re: Rapira (Рапира) – Soviet programming language interpreter

#13

It feels like Pascal in Cyrillic. Autotranslation, with a little manual correction, but I can't fix КНЦ (autotranlated to KNC): FUNC FACT (N); NAME: R; 1 -> P; FOR I FROM 1 TO N :: R * I -> R ALL RES: R KNC; FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(N) ALL;

Since I know russian well, here's a proper translation for y'all

    FUNC FACT (N);
       NAMES: P;           (* variable names *)
       1 -> P;
       FOR I FROM 1 TO N ::
          P * I -> P
       DONE                (* endif *)
    RET: P                 (* return value *)
    END;                   (* end of function *)
    
    FOR N FROM 0 TO 6 ::
       ? "FACT(", N, ") = ", FACT(Н)   (* print *)
    DONE;

Re: Rapira (Рапира) – Soviet programming language interpreter

#14
post #4

It feels like Pascal in Cyrillic. Autotranslation, with a little manual correction, but I can't fix КНЦ (autotranlated to KNC): FUNC FACT (N); NAME: R; 1 -> P; FOR I FROM 1 TO N :: R * I -> R ALL RES: R KNC; FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(N) ALL;

I would read «КНЦ» as «КОНЕЦ», literally “an end” or “the end” (Russian does not have anything resembling articles). Who needs vowels, anyway. Also, «ВСЕ» feels like «ВСЁ» in this context, I’d translate that as “that’s all”.

The acronyms are because it was originally russified by substituting character codes in Pascal binary. Thus VAR became ИМЯ, END became КНЦ and so on. Same reason JOB hilariously became ЗАД in the liberated OS/360.

Everyone's happy, head of development celebrates his 3rd degree Lenin's premium.

Re: Rapira (Рапира) – Soviet programming language interpreter

#15
I wish the Soviets had focused more on developing an independent computer industry and their own distinct flavors of programming languages.

Imagine the thrill of studying languages built to run on completely separate hardware architectures, featuring entirely novel paradigms and structures.

This would be the closest thing to experience reverse-engineering a computer from an alien spaceship.

Re: Rapira (Рапира) – Soviet programming language interpreter

#16
post #10

It feels like Pascal in Cyrillic. Autotranslation, with a little manual correction, but I can't fix КНЦ (autotranlated to KNC): FUNC FACT (N); NAME: R; 1 -> P; FOR I FROM 1 TO N :: R * I -> R ALL RES: R KNC; FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(N) ALL;

>It feels like Pascal in Cyrillic replace cyrillic w/ russian and it'd be ok. КНЦ = end (конец in russian is end). However, in bulgarian in means 'thread' (as in sewing thread) and it has lots its meaning of end, aside from 'from needle to thread' expression where it means from the tip of the needle to the end of the thread. Also 'ALL' (и все = it's over/that's all), which should be 'end' as in begin/end in pascal. T…

> However, in bulgarian in means 'thread'

You can use "конец" for "end" in Bulgarian too, even though it's antiquated.

Re: Rapira (Рапира) – Soviet programming language interpreter

#19

I wish the Soviets had focused more on developing an independent computer industry and their own distinct flavors of programming languages. Imagine the thrill of studying languages built to run on completely separate hardware architectures, featuring entirely novel paradigms and structures. This would be the closest thing to experience reverse-engineering a computer from an alien spaceship.

That was my feeling when I first heard about Lisp Machines. It's unfortunate that I never got to see or use one in person.

Re: Rapira (Рапира) – Soviet programming language interpreter

#20
post #14
post #4

Earlier quoted context omitted.

I would read «КНЦ» as «КОНЕЦ», literally “an end” or “the end” (Russian does not have anything resembling articles). Who needs vowels, anyway. Also, «ВСЕ» feels like «ВСЁ» in this context, I’d translate that as “that’s all”.

The acronyms are because it was originally russified by substituting character codes in Pascal binary. Thus VAR became ИМЯ, END became КНЦ and so on. Same reason JOB hilariously became ЗАД in the liberated OS/360. Everyone's happy, head of development celebrates his 3rd degree Lenin's premium.

Is it really Pascal though? There's a lot of academic/educational languages with the similar syntax, and I think РАПИРА had additional data structures. (I've read a book on it and tinkered with it as a kid, but it was in the early 90's and I barely remember any of it)
Post reply on HN