Revision 255550838 of "Glagol" on enwiki'''Glagol''' ([[Russian language|Russian]] ''Глагол'', "verb") is a programming language based on the [[Russian language|Russian]] lexicon. It is strongly reminiscent of [[Oberon programming language|Oberon]] and [[Pascal programming language|Pascal]]. The language is the subject of serious academic study and is under active development. The complete distribution includes, along with the compiler, a set of mathematical and system libraries, games and applications with source code attached.
== Features ==
* The usage of Russian keywords is believed to make the language easier to understand. These keywords are often different from those usually used to describe programming languages but they are closer to everyday Russian speech.
* The language is based on [[Oberon (programming language)|Oberon]] and therefore almost all the features of that language are present.
* There is significant support for console programs, which are widely used in education. All strings are automatically converted into an OEM encoding with output procedures.
* There is a simple console-based GUI.
* Debugging is possible (using Microsoft Visual Studio).
== Problems ==
* Console output. All existing functions use console output, and the simple GUI is also console-based. It is still possible to use pure Windows API, though.
* Lack of a modern GUI. The supplied IDE (Оболочка) is too simple for serious use. Use of [[FAR manager]] and batch command file Построить.bat is suggested for program compilation. It is also possible to use Microsoft Visual Studio as a GUI, but debugging is the only supported advanced feature there.
* Typing texts can sometimes require switching between different keyboard layouts because not all Russian keyboard layouts contain the characters []<>{}|# that are used in Glagol (the one used in Windows 98 does use the Alt key for this, but the one used in Windows XP doesn’t and the Alt key is used for inserting characters by their number instead). One solution to this problem is to use a modern IDE.
Of course, these problems can be eliminated as compiler development goes on.
== Terminology ==
The terminology used in Glagol is different from what is used to describe most programming languages. While it is closer to everyday Russian speech, it may confuse those who want to learn Glagol but who already know another programming language.
{| class="wikitable"
|-valign="top"
! Glagol term
! Direct translation
! Traditional term
! English term
|-valign="top"
| вид (vid)
| kind
| тип (tip)
| type
|-valign="top"
|данное (dannoye)||datum||переменная (peremennaya)||variable
|-valign="top"
|действие (deystvie)||action||операция (operatsia)||operation
|-valign="top"
|доступ (dostup)||access||указатель (ukazatel)||pointer
|-valign="top"
|задача (zadacha)
|task
|процедура (protsedura), функция (funktsia)
|procedure, function
|-valign="top"
|ключ (kluch)
|key
|логическая переменная (logical variable)
|boolean variable
|-valign="top"
|набор (nabor)
|set, collection
|запись (zapis'), структура (struktura), объект (obyekt), класс (klass)
|record, structure, object, class
|-valign="top"
|название (nazvanie)
|name
|идентификатор (identifikator)
|identifier
|-valign="top"
|отдел (otdel)
|section
|модуль (modul')
|unit, module
|-valign="top"
|пояснение (poyasnenie)
|explanation
|комментарий (kommentariy)
|comment
|-valign="top"
|преобразователь (preoprazovatel)
|transformer
|компилятор (kompilator)
|compiler
|-valign="top"
|приёмник (priyomnik)
|receiver
|параметр (parametr)
|parameter
|-valign="top"
|ряд (r'ad)
|row
|массив (massiv)
|array
|-valign="top"
|тексторез (tekstorez)
|text cutter
|препроцессор (preprotsessor)
|preprocessor
|-valign="top"
|уборка памяти (uborka pam'ati)
|memory cleanup
|сборка мусора (sborka musora)
|garbage collection
|-valign="top"
|указание (ukazanie)
|instruction
|оператор (operator)
|operator
|-valign="top"
|цепочка (tsepochka)
|(small) chain
|строка (stroka)
|string
|}
==Example of a program on Glagol==
«[[hello world program|Hello world]]»:
<font color="#0000BB">ОТДЕЛ</font> <font color="#007700">Привет+</font><font color="#0000BB">;</font>
<font color="#0000BB">ИСПОЛЬЗУЕТ</font> <font color="#007700">Вывод</font> <font color="#0000BB">ИЗ</font> <font color="#DD0000">"...\Отделы\Обмен\"</font><font color="#0000BB">;</font>
<font color="#0000BB">УКАЗ</font>
<font color="#007700">Вывод<font color="#0000BB">.</font>Цепь</font><font color="#0000BB">(</font><font color="#DD0000">"Здравствуй, мир!"</font><font color="#0000BB">)</font>
<font color="#0000BB">КОН</font> <font color="#007700">Привет</font><font color="#0000BB">.</font>
==External links==
* [http://glagol.nad.ru/ Official site of the programming language Glagol]
* [http://rus.jino-net.ru/index.php?c=7 Independent forum about programming on Glagol]
{{compu-lang-stub}}
[[Category:Non-English-based programming languages]]
[[Category:Procedural programming languages]]
[[cs:Glagol]]
[[ru:Оберон (язык программирования)#Глагол]]
[[uk:Глагол (мова програмування)]]All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://en.wikipedia.org/w/index.php?oldid=255550838.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|