Сокращенно: РЯП.
Ну и, как следствие, начал разработку интерпретатора РЯП.
РЯП напоминает язык КуМир, но будут существенные отличия и преимущества в сравнении с другими языками.
Переменные не надо объявлять, так как при первом обнаружении переменной в листинге программы интерпретатор автоматически создаст с таким именем переменную типа Double (вещественное число).
Интерпретатор пишу в 32-битной версии среды разработки «Lazarus» (язык программирования Паскаль).
В ряпе конечно же есть зарезервированные слова: начало, конец, если, цикл.
Но зарезервированные слова можно использовать в качестве имен переменных!
По ссылке можете скачать архив, в нем содержатся бинарник (версия 0.2), простые программы:
архив
Си и Паскаль уйдут, Питон утонет, Яву скурят!
Свободно скачивайте и распространяйте, пишите программки, пишите мне о глюках.
Только, пожалуйста, не делите на ноль! :)
ДОПОЛНЕНИЕ 1 (от 28 февраля 18:30 МСК):
1) Кто-то посмеялся над названием языка, предложил свои варианты.
Прям, как малые дети :)
2) Кто-то вообще не захотел скачивать архив, наверное, даже по ссылке не перешел.
Для кого тогда придумывали URL и вообще всю философию HTTP?
3) Кто-то никак не хочет отлипнуть от английского языка.
Наверное, и шпрехает только на английском, используя слова типа стартап, коммит, заклозь, лайфхак, гамбургер, свитшот.
ДОПОЛНЕНИЕ 2 (от 28 февраля 19:15 МСК):
В скобках привожу латинские аналоги.
Реализованы конструкции языка: начало (begin; начало цикла), цикл (cycle; конец тела цикла), если (if), = (присвоение).
Бинарные операторы: * (умножение), + (сложение), — (вычитание), / (деление), ^ (возведение в степень),
% (процент), mod (остаток от деления на число), and (битовое И), xor (битовое исключающее ИЛИ),
or (битовое ИЛИ), >> (битовый сдвиг вправо).
Унарные команды: ЛИнверт (LInvert; логическое инвертирование переменной), округлить (round; округление вещественного числа до целого числа), показать (show; отобразить имя и значение переменной)
Вот код для вычисления простых чисел:
число = 3
конец = 60
начало
цикл = число / 5
округлить цикл
простое = 1
начало
цикл2 = цикл + 1
остаток0 = число mod цикл2
остаток = остаток0
ЛИнверт остаток
если остаток
простое = 0
цикл = цикл - 1
если остаток
цикл = 0
цикл цикл
если простое
показать число
число = число + 2
конец = конец - 1
цикл конец
Результат:
число = 3
число = 5
число = 7
число = 11
число = 13
число = 17
число = 19
число = 23
число = 29
число = 31
число = 37
число = 41
число = 43
число = 47
число = 53
число = 59
число = 61
число = 67
число = 71
число = 73
число = 79
число = 83
число = 89
число = 97
число = 101
число = 103
число = 107
число = 109
число = 113
P.S. На перспективу:
— Механизм массивов.
— Вместо присвоения одной переменной можно написать формулу,
в левой части которой может стоять не только переменная, но и операция с другой переменной.
— Анализ кода.
Выдача подробных подсказок программисту.
— Автоматическое переформатирование кода в нужный стиль.
— Имя переменной можно сокращать.
Интерпретатор сам определит, какую переменную из объявленных имели в виду.
— Иногда допускается, что между конструкцией языка (цикл, если) и переменной нет пробела.
— Любой код можно записать в одну строку.
— Объединение нескольких файлов кода в одном файле.
— Любое количество букв в названии конструкции языка.
surVrus
Какова цель написания этого языка?
Пока это мне не понятно, поэтому мое мнение — развивать его не стоит.
Кстати цель — существительное. То есть «развитие языка» — это не цель.
Интерес — цель.
Настроение — цель.
Знание — тоже цель.
vdem
Какова цель написания этой статьи? Минусов огрести? Чушь какая-то.
justhabrauser
Скорее всего — настроение.
В отличие от многих бредятин в этих ваших хабрах данная
бредятинастатья положительное доставляет.Автору —
пешыистчореспект!NuShaman Автор
Спасибо за добрые слова!
cccco
Слово "развитие" — тоже существительное, не?
surVrus
Тоже верно. Формально это так. Само слово «развитие» обозначает нематериальный объект, оно обозначает больше действие, некий процесс.
А лучше избегать процессов и сложных абстрактных определений в формулировке цели.
Например, «расширение рынка сбыта» — это плохо сформулированная цель. Ее трудно параметризировать. Да и рынок можно не только расширять, это один из методов или способов увеличения продаж.
NuShaman Автор
Основная цель — простота во всём, то есть простой синтаксис языка, простая среда разработки, интерпретация проще компиляции. Если очень грубо сравнивать, то РЯП есмь нечто среднее между Паскалем и брэйнфаком. Хотя Никлаус Вирт и объявлял Паскаль простым языком, но синтаксис относительно сложный для школьника, например. Помню в 9-м классе мне преподавали Паскаль, я ничего не понял. Правда, РЯП ещё не преподавался никаким школьникам, эта статья на Хабре — первая ласточка.
Цели поменьше: возможность написания кода на русском языке, и как некое следствие: интерпретатор можно доработать так, что одну и ту же программу, выдающую один и тот же результат, можно написать и на русском, и на английском языке (чтобы утихомирить интернациональное сообщество).
Интерес: в будущем просто и наглядно запрограммировать на РЯП ЛЮБОЙ алгоритм: сжатие данных, вычисление MD5, шифрование информации, обработка двумерной графики (а потом и n-мерной).
Расширение: написание интерпретатора РЯП под DOS, на Java для сотового телефона, на Linux.
И я бы даже сказал, как бы это бредово ни звучало, что я сам ещё не могу до конца сформулировать все цели написания языка, который я придумываю. То есть эти цели будут конкретно формулироваться в процессе улучшения языка.
Zenitchik
Любой случайно взятый редактор для txt лучше среды, которую можно быстро написать. Для нормальной работы с языком нужен консольный интерпретатор, который можно было бы запустить не открывая лишних окон.
Отсутствие возможности редактировать код в любом удобном текстовом редакторе, а потом запустить его, не закрывая редактор, — большой недостаток многих языков.