LINUX.ORG.RU

Новый язык программирования для русскоговорящих

 , , ,


3

2

Синтаксис от Хаскеля, семантика от Ракета.

факториал(сч) =
  если (сч == 1)
    1
    сч * факториал (сч - 1)

фибоначчи(сч) =
  если (сч < 3)
       1
       пусть рекурсия (н-1 1; н 2; тек-сч 3)
         если (сч == тек-сч) н $ рекурсия н (н + н-1) $ тек-сч + 1

Будет ещё конструкция надо-быстро с семантикой от Си (и использованием gcc).

Исходники: https://github.com/Kalimehtar/russian-lang

Пакет для Ракета: https://pkgd.racket-lang.org/pkgn/package/russian-lang

Документация: https://docs.racket-lang.org/russian-lang/index.html

★★★★★

Последнее исправление: hobbit (всего исправлений: 4)

Недостаточно самобытно.

если (сч == тек-сч) н ¤ рекурсия н (н + н-1) ¤ тек-сч + 1

anonymous
()

Мертворожденный яп. ТС если ты автор этого, то кончай страдать ерундой, лучше напиши что-то полезное.

anonymous
()
Ответ на: комментарий от monk

Ну что, больше русскоязычных ЯП хороших и разных! Про способ избавления от скобок потом посмотрю, интересно до сих пор. Я так и не осилил придумать, как это сделать достаточно красиво - у меня всё время оказывалось не лучше существующих ЯП, или появляются дыры в смыслах, если ещё выражения с приоритетами, или просто громоздко.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Так я и пишу полезное (на работе). А язык для упрощения написания.

monk ★★★★★
() автор топика
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

Ну, PSeInt это прямо таки настоящий отдельный язык, а не перевод ключевых слов от питона. Да, он учебный, но, ИМХО, это единственная ниша, где это действительно нужно.

Singularity ★★★★★
()
Ответ на: комментарий от anonymous

ТекущееЗначение, ПредыдущееЗначение, НомерЭлемента,

Удобнее набирать без сдвига регистра: текущее-значение. Хотя, это уже каждый выбирает себе сам. Язык не заставляет. Регистр в именах учитывается.

monk ★★★★★
() автор топика
Ответ на: комментарий от Singularity

Ну, PSeInt это прямо таки настоящий отдельный язык

Посмотрел снимки экранов, КуМир вспомнился.

monk ★★★★★
() автор топика
Ответ на: комментарий от aalst

Эх, были же клавиатуры, где можно было набрать <> не переключая регистр. Просрали все полимеры.

anonymous
()
Ответ на: комментарий от monk

многие пишут, что лиспы нечитаемы из-за их огромного количества.

никто не мешает совмещать скобки с форматированием, [s]ваш кэп (с) [/s] это делает любая ide
скобки и нормальные указания если/иначе:

  • никуда не уедут
  • реально объясняют что происходит человеку, который вообще не знаком с синтаксисом конкретного языка
  • не привязаны к каким-то предсказанным вариантам лямбд

т.е. ты просто открыл код, прочитал и понял что там написано, даже не зная языка, а иначе неудобная хренотека с запоминанием «а чо чо тут в конкретном языке то у нас - вторая строчка после если без скобок это продолжение попадания или уже еслине или вообще код вне блока?» или «а вот тут таб вставлен или тут реально пробелов дофига и подподподфункция какая-то?» и т.п.

rukez ★★★★
()

н (н + н-1)

если это отсылка к школьной программе, то в русских школах используют латинскую n. Лучше б назвал число – было бы действительно по-русски.

dsxl
()

От куда вы лезете? o_O

beastie ★★★★★
()

Кстати, долой полумеры

если (сч == 1)если сч равен одному

если (сч < 3)если сч меньше трёх

если (сч <= 2)если сч не больше двух

ну и т.д.

anonymous
()

Вот если бы в диаграммах… Ну ты понял ;)

anonymous
()
Ответ на: комментарий от den73

На пробел? По мне так лучше то же самое на капслок, чем много лет пользуюсь. Хотя кому как, конечно.

anonymous
()
Ответ на: комментарий от ugoday

Именно. Поэтому я предложил решение. На самом деле есть решение и получше, но это уже будет оффтоп.

dsxl
()
Ответ на: комментарий от aalst

Это солнышко, а не черепашка

Когда я изучал Бейсик, у меня в учебнике это была черепашка.

Сейчас нагуглил, не только у меня.

monk ★★★★★
() автор топика

Если-то, тема не поцанская. Когда-тогда – да. И склонения и спряжения. И символы с аглицкой раскладки убери. Пётр I, приехав в Англию, пошёл в кабак и устроил там чад кутежа. У них до сих пор пердак горит.

anonymous
()
Ответ на: комментарий от anonymous

Если-то, тема не поцанская. Когда-тогда – да.

Чем лучше-то?

И склонения и спряжения.

Не придумал, как их удобно использовать в описании алгоритмов.

Пётр I, приехав в Англию, пошёл в кабак и устроил там чад кутежа. У них до сих пор пердак горит.

Тут и так чад кутежа. Что-то русские ключевые слова в языке для многих триггером срабатывают. А мне всего лишь нужно было упрощение для написания конструкций типа:

(define-for-syntax (оператор! оп приоритет [ассоциативность 'лево])
  (hash-set! приоритеты оп (cons приоритет ассоциативность)))

Выложил, вдруг кому-то ещё польза будет.

monk ★★★★★
() автор топика
Ответ на: комментарий от anonymous

В каком месте?

Оператор $, отступы как синтаксический элемент, вызов функции через пробел, комментарии через –

monk ★★★★★
() автор топика
Ответ на: комментарий от rukez

вторая строчка после если без скобок это продолжение попадания или уже еслине

А со скобками

(if (> x 0)
    (action1)
    (action2))

разве очевидно, что action2 при еслине ? Если для неграмотных, то обязательно надо слово «иначе» в синтаксис втыкать. Хотя и для упрощения чтения может пойдёт, надо подумать.

или «а вот тут таб вставлен или тут реально пробелов дофига и подподподфункция какая-то?» и т.п.

Это при компиляции автоматически выявляется. Начало отступов обязано совпадать иначе ошибка. Для копипасты в странные места, где нет форматирования можно писать

if (x > 0)
!  action1 arg1
!  action2 arg2
monk ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Замена $, чтобы советские дети не поддавались пагубному влиянию запада.

rupert ★★★★★
()

Тут как раз по телевизору говорили что нам нужен свой язык программирования, смотрю ТС подсуетился.

MaxPower ★★
()

для русскоговорящих
$

А теперь переделай это в «для русскопечатающих» (ЙЦУКЕН).

«;» тоже дольше набирается, чем в QWERTY, т.к. надо еще SHIFT держать.

В ЙЦУКЕН вообще таких кнопок меньше. Только -=\ и ., ну и на NumPad’e /*-+.

boowai ★★★★
()
Ответ на: комментарий от anonymous

Накидайте примеров ЯП для немецкоговорящих

do
do class
do class if.

do
do class
do class if.

do!
do class!
do class if
do class if!
do class if inline
do class if inline
do class if inline!
bool this delete define!

this do int break sizeof public
try if struct for auto static
while!
while!
grem ★★★★★
()
Ответ на: комментарий от boowai

«;» тоже дольше набирается, чем в QWERTY, т.к. надо еще SHIFT держать.

Некоторые вообще ВерблюжьиМногослованыеИдентификаторы пишут. И Shift им не мешает.

И если очень надо, то верхний цифровой ряд легко перепрограммируется в <@#$>^&`[] без Shift-а И на NumLock’овской к /* добавить с Shift-ом ~|

monk ★★★★★
() автор топика

язык программирования для русскоговорящих

прикрути распознавание речи чтобы клавиши не давить и добавь матерных слов для сокращения конструкций - вот это будет революционно, а так неинтересно.

anonymous
()
Ответ на: комментарий от deadplace

Твоё чувство прекрасного оскорбляет, что кто-то посмел делать ЯП не на божественном английском?

hobbit ★★★★★
()
Ответ на: комментарий от monk

если это отсылка к школьной программе, то в русских школах используют латинскую n

Внезапная зрада! Русификаторам стоит продумать вариант полного запрета вражеского алфавита в программах. А то школьники понапишут им иксов всяких на радость шпиёнам.

bread
()
Ответ на: комментарий от hobbit

Больше всего доставляет даже не русский язык (который для программирования подходит как корове седло), а то, что каждый фрик делает свой ЯП. Вон den73 даже сам с собой договориться не может насчет синтаксиса.

bread
()
Ответ на: комментарий от bread

Больше всего доставляет даже не русский язык (который для программирования подходит как корове седло)

Английский подходит не лучше. Объективно хорошо подошёл бы китайский (из-за короткой записи) или ифкуиль (из-за однозначности трактовки).

каждый фрик делает свой ЯП

Не совсем свой. У den73 Oberon, у меня Racket. А «своих DSL» под каждую задачу в любом лиспе вагон.

monk ★★★★★
() автор топика

Упарываться с сокращениями не надо, автодополнение в IDE поможет. «н» и «тек-сч» - нечитабельны.

Result-Code
()
Ответ на: комментарий от Zhbert

Есть же 1с?

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

  2. У него достаточно ограниченный язык. Например, значением переменной не может быть функция.

  3. У 1с нет возможности запускать функции из внешних библиотек.

  4. Производительность.

monk ★★★★★
() автор топика
Ответ на: комментарий от Result-Code

Кстати, в языке не учтено то, что в русской раскладке с ‘$’ затруднения: менять раскладку во время программирования будет жутко раздражать пользователей.

Язык без знаков <>[]{}`~’$#@: сделать можно, но он будет многословным как Кобол и, как следствие, трудночитаемым.

Проще разово сменить раскладку или добавить комбинации в IDE.

monk ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.