LuaRu — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
м
м
 
(не показано 48 промежуточных версий 5 участников)
Строка 1: Строка 1:
Версия языка [[lua]] в которой дополнительно добавлена (а не заменены) возможность использовать русские  
+
Версия языка [[lua]] в которой дополнительно добавлена (а не заменены) возможность использовать русские:
* имена переменных
+
* имена переменных - в современной версии Lua запретили даже использовать не латинские имена переменных и функций ("Для совместимости") - сделано
* функций
+
* функций - сделано
* ключевых слов
+
* ключевых слов - сделано
* русификация сообщений об ошибках
+
* русификация сообщений об ошибках - пока не сделано
 +
 
 +
== Загрузить ==
 +
* [https://yadi.sk/d/b8tmsD993U6iai Скачать с  Яндекс Диска] альфа версия LuaRu от 8 апреля 2018 с ключевыми словами от rts256 и ТХАБ.РФ (две версии)
 +
 
 +
=== Известные проблемы ===
 +
* не выводятся сообщения на русском из-за  проблем с кодировками - критическая
 +
* файл с кодом не может иметь кириллическое имя
 +
 
 +
=== Планы разработки ===
 +
* Сделать подсветку синтаксиса в портативной версии Notepad++
 +
* добавить обновление от rst256 и скомпилировать его
 +
* сделать справку по LuaRu на htm
 +
* скомпилировать под ubuntu
 +
* репозиторий кода на LuaRu
  
 
== Области использования ==
 
== Области использования ==
* написание и модификация игровых скриптов
+
* написание и модификация скриптов для игр и ПО
* написание торговых роботов
+
* написание торговых роботов для [[QUIK]]
 
* изучение программирования
 
* изучение программирования
  
 +
=== Замечания ===
 +
* пример того как можно добавить русские названия для базовых ф-й (см. файл [https://github.com/rst256/luaRu/blob/master/lbaselib.c lbaselib.c]).
 +
* И насчёт битовых операций в учебнике LuaRu устаревшая информация, в версии 5.3 добавлена полноценная их поддержка.
  
 
=== Что добавить (по приоритетам ) ===
 
=== Что добавить (по приоритетам ) ===
Строка 21: Строка 38:
 
* Редактор кода с '''подсветкой''' одновременно русского И АНГЛИЙСКОГО синтаксиса
 
* Редактор кода с '''подсветкой''' одновременно русского И АНГЛИЙСКОГО синтаксиса
 
* Редактор кода с подсветкой и '''автодополнением''' русского синтаксиса.
 
* Редактор кода с подсветкой и '''автодополнением''' русского синтаксиса.
 +
 +
=== Ключевые слова и их перевод ===
 +
 +
1. Учитывая особенности русского языка имеет смысл для некоторых операторов добавить 2 синонима. Например
 +
 +
* true - да, правда (ВКЛ - так в Глаголе)
 +
 +
* false - нет, ложь (ОТКЛ - так в Глаголе)
 +
 +
2. Для улучшения читабельности текста возможно имеет смысл "elseif" переводить как "иначе_если", а не "иначеесли" или "ИначеЕсли" (ЕСЛИ..ТО..АЕСЛИ..ТО..ИНАЧЕ..КОН - так в Глаголе)
 +
 +
3. и, или, не, - сделать большими И, ИЛИ, НЕ - ? (И, ИЛИ, НЕ - так в Глаголе)
 +
 +
3. после получения рабочей альфа версии необходимо будет ещё раз провести ревизию синтаксиса и на читабельность на больших кусках кода
 +
 +
{| class="wikitable"
 +
|-
 +
! [[Lua]]  !! Зуев !! 1С !! [[LuaRu]] !! rts256
 +
|-
 +
| and ||  ||  || И || и
 +
|-
 +
| break ||  ||  || первать / выход || стоп
 +
|-
 +
| do ||  ||  || делать, повторять || начало
 +
|-
 +
| else ||  ||  || иначе || иначе
 +
|-
 +
| elseif ||  ||  || иначе_если || иначеесли
 +
|-
 +
| end ||  ||  || конец || всё
 +
|-
 +
| false ||  ||  || ложь, нет || ложь
 +
|-
 +
| for ||  ||  || для || для
 +
|-
 +
| function ||  ||  || функция || функция
 +
|-
 +
| goto ||  ||  || перейти, перейти_к || идина
 +
|-
 +
| if ||  ||  || если || если
 +
|-
 +
| in ||  ||  || в || в
 +
|-
 +
| local ||  ||  || локальная || локал
 +
|-
 +
| nil ||  ||  || пусто || нуль
 +
|-
 +
| not ||  ||  || НЕ || не
 +
|-
 +
| or ||  ||  || ИЛИ || или
 +
|-
 +
| repeat ||  ||  || повторить ||  повторять
 +
|-
 +
| return ||  ||  || вертуться, в начало|| возврат
 +
|-
 +
| then ||  ||  || то, тогда || тогда
 +
|-
 +
| true ||  ||  || правда, да || истина
 +
|-
 +
| until ||  ||  || покаНе || покуда
 +
|-
 +
| while ||  ||  || пока || пока
 +
|}
 +
 +
== Пример кода ==
 +
 +
function square(iteratorMaxCount,currentNumber)
 +
  if currentNumber<iteratorMaxCount
 +
    then
 +
      currentNumber = currentNumber+1
 +
      return currentNumber, currentNumber*currentNumber
 +
  end
 +
end
 +
 +
for i,n in square,3,0
 +
do
 +
  print(i,n)
 +
end
 +
=== На LuaRu ===
 +
функция Квадрат ( целСчётчикМаксимальноеКоличество, текущийНомер )
 +
    если текущийНомер < целСчётчикМаксимальноеКоличество
 +
    тогда
 +
      текущийНомер= текущийНомер + 1
 +
      возврат текущийНомер, текущийНомер * текущийНомер
 +
    конец
 +
конец
 +
 +
для и, н в Квадрат, 3, 0
 +
делай
 +
  печать(и, н)
 +
конец
 +
 +
== LuaRu разработка ==
 +
 +
* [[Учебник по LuaRu]]
 +
* [[LuaRu тесты]]
 +
* [[LuaRu компиляция исходников в Windows7]]
 +
** [[LuaRu компиляция исходников в Linux]] Ubuntu , [[Astra Linux]]
 +
* [[IDE для LuaRu]] подсветка синтаксиса, настройка  Notepad ++
 +
* [[Замена Lua на LuaRu в программах]]
  
 
== См. также ==
 
== См. также ==
 
* [[Lua]]
 
* [[Lua]]
 +
* [[LuaRus]]
 
* [[Языки программирования с русским синтаксисом]]
 
* [[Языки программирования с русским синтаксисом]]
* [[Си]]
+
* [[Русификация Си++]]
  
 
== Ссылки ==
 
== Ссылки ==
 +
* https://vk.com/luaru Официальная группа ВКонтакте по LuaRu
 +
* https://yadi.sk/d/b8tmsD993U6iai скачать с Яндекс Диска
 +
* https://github.com/rusprogwiki Русификация Lua форк Lua 5.3.4
 +
* http://plana.mybb.ru/viewtopic.php?id=576 Обсуждение LuaRu
 +
* http://dev.mindillusion.ru/installation-lua/ компиляция Lua из исходников под Windows MSVC
 +
* https://habrahabr.ru/post/144830/ Как настроить подсветку синтаксиса в Notepad++
  
 
[[Категория:Lua]]
 
[[Категория:Lua]]
 +
[[Категория:LuaRu]]

Текущая версия на 08:17, 14 марта 2024

Версия языка lua в которой дополнительно добавлена (а не заменены) возможность использовать русские:

  • имена переменных - в современной версии Lua запретили даже использовать не латинские имена переменных и функций ("Для совместимости") - сделано
  • функций - сделано
  • ключевых слов - сделано
  • русификация сообщений об ошибках - пока не сделано

Загрузить

Известные проблемы

  • не выводятся сообщения на русском из-за проблем с кодировками - критическая
  • файл с кодом не может иметь кириллическое имя

Планы разработки

  • Сделать подсветку синтаксиса в портативной версии Notepad++
  • добавить обновление от rst256 и скомпилировать его
  • сделать справку по LuaRu на htm
  • скомпилировать под ubuntu
  • репозиторий кода на LuaRu

Области использования

  • написание и модификация скриптов для игр и ПО
  • написание торговых роботов для QUIK
  • изучение программирования

Замечания

  • пример того как можно добавить русские названия для базовых ф-й (см. файл lbaselib.c).
  • И насчёт битовых операций в учебнике LuaRu устаревшая информация, в версии 5.3 добавлена полноценная их поддержка.

Что добавить (по приоритетам )

  • русские имена переменных
  • русские имена функций
  • русские ключевые слова из 1С/Си Зуев интерстрон
  • сообщения об ошибках на русском языке
  • русские примеры и тесты
  • русский учебник
  • конвертер русс-лат
  • Редактор кода с подсветкой одновременно русского И АНГЛИЙСКОГО синтаксиса
  • Редактор кода с подсветкой и автодополнением русского синтаксиса.

Ключевые слова и их перевод

1. Учитывая особенности русского языка имеет смысл для некоторых операторов добавить 2 синонима. Например

  • true - да, правда (ВКЛ - так в Глаголе)
  • false - нет, ложь (ОТКЛ - так в Глаголе)

2. Для улучшения читабельности текста возможно имеет смысл "elseif" переводить как "иначе_если", а не "иначеесли" или "ИначеЕсли" (ЕСЛИ..ТО..АЕСЛИ..ТО..ИНАЧЕ..КОН - так в Глаголе)

3. и, или, не, - сделать большими И, ИЛИ, НЕ - ? (И, ИЛИ, НЕ - так в Глаголе)

3. после получения рабочей альфа версии необходимо будет ещё раз провести ревизию синтаксиса и на читабельность на больших кусках кода

Lua Зуев LuaRu rts256
and И и
break первать / выход стоп
do делать, повторять начало
else иначе иначе
elseif иначе_если иначеесли
end конец всё
false ложь, нет ложь
for для для
function функция функция
goto перейти, перейти_к идина
if если если
in в в
local локальная локал
nil пусто нуль
not НЕ не
or ИЛИ или
repeat повторить повторять
return вертуться, в начало возврат
then то, тогда тогда
true правда, да истина
until покаНе покуда
while пока пока

Пример кода

function square(iteratorMaxCount,currentNumber)
  if currentNumber<iteratorMaxCount
   then
     currentNumber = currentNumber+1
     return currentNumber, currentNumber*currentNumber
  end
end

for i,n in square,3,0
do
  print(i,n)
end

На LuaRu

функция Квадрат ( целСчётчикМаксимальноеКоличество, текущийНомер )
   если текущийНомер < целСчётчикМаксимальноеКоличество
    тогда
      текущийНомер= текущийНомер + 1
      возврат текущийНомер, текущийНомер * текущийНомер
   конец
конец
для и, н в Квадрат, 3, 0
делай
  печать(и, н)
конец

LuaRu разработка

См. также

Ссылки