|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||
Очередной маленький проект: язык программирования Unvariable31.05.2026, 18:19. Показов 4043. Ответов 59
Метки нет (Все метки)
Существует популярное заблуждение, что я только за гигантские проекты хватаюсь, которые не осиливаю, а маленьких якобы нет. На самом деле у моей компании было уже много маленьких проектов, и многие из них имели несколько страниц обсуждения: игрушечный язык программирования HQRCS, морской бой (собственного названия не имел), Cards II, Exlaroveen, демонстрация возможностей C#.NStar Threes, и вот теперь очередной игрушечный язык программирования, который, возможно, разовьется в большой проект, а может быть, так и останется маленьким. Язык называется Unvariable и содержит всего две операции: создание константы и возврат. Скачать можно на сайте (мы существенно обновили главную страницу, поэтому ссылка на нее, оттуда не сложно перейти на нужную).
Наш стиль1. В этом языке нет переменных, только константы (потому и Unvariable). 2. Нет циклов, только рекурсия. 3. Значение функции зависит только от аргументов, не нужно каждый раз воссоздавать внешнее состояние, чтобы проверить, работает ли функция. Наши главные достижения1. Результат выполнения функции кэшируется, повторный вызов с теми же параметрами занимает десятки-сотни наносекунд. Наши главные планы1. Ввод-вывод. 2. Параллельное выполнение не связанных операций. 3. "Ленивое" выполнение операций, результат которых не используется. Преимущества Unvariable1. Технически переполнение стека возможно, но если захотите вызвать его специально, вряд ли дождетесь. 2. Пока в разработке... Почти полное описание синтаксисаОбъявление константы:
var. Можно объявить новую константу с тем же именем:
byte - беззнаковое целое число от 0 до 255. short int - знаковое целое от -32768 до 32767. unsigned short int - беззнаковое целое от 0 до 65535. int - знаковое целое от ~-2 млрд до ~2 млрд. unsigned int - беззнаковое целое от 0 до ~4 млрд. long int - знаковое целое от ~-9 ктлн до ~9 ктлн. unsigned long int - беззнаковое целое от 0 до ~18 ктлн. long long - произвольно большое знаковое целое. unsigned long long - произвольно большое беззнаковое целое. real - с плавающей точкой от ~1E-312 до ~1E+308 в плюс и в минус, а также ноль, плюс-минус бесконечность и NaN (аналог неопределенности). char - не тестировался. (T1, T2, T3, ...) - кортеж. () T - список. Доступны только функции проверки, добавления в конец (Add, AddRange, AddSeries) и создающие новый список, изменение и удаление не поддерживается. (n) T - многомерный список. string - строка. Такой же критерий доступности функций, как и для списка. System.Func[TResult, T1, T2, T3, ...] - делегат с возвращаемым типом TResult и одним или несколькими параметрами. Используются квадратные, а не угловые скобки. Исключения: System.ArgumentException, System.IndexOutOfRangeException, System.NullReferenceException, System.OverflowException. Поддерживаемые бинарные операторы: + - * / % & | ^ && || ^^ (N-арный XOR, возвращает true, только если ровно один операнд равен true) << >> <<< (циклический сдвиг) >>> (беззнаковый сдвиг) pow (возведение в степень) == != >= <= > < = += -= *= /= %= &= |= ^= <<= >>= pow=. Унарные: + - ! (префиксный - отрицание, постфиксный - факториал) ~ ^ (индекс с конца). Тернарные: x ? y : z, x ?= y : z, x ?!= y : z, x ?>= y : z, x ?<= y : z, x ?> y : z, x ?< y : z (все, кроме первого, эквивалентны x op y ? x : z (?== сокращается до ?=)). Тернарные операторы - вообще одни из главных операторов в Unvariable, так как в обычных условиях имеет смысл только возврат. Возврат:
x is pattern.Циклов, как уже упоминалось, нет, для этого используется рекурсия. Функция:
Обработка исключений:
0
|
||||||||||||||||||||||||||||||||||||||||||||||
| 31.05.2026, 18:19 | |
|
Ответы с готовыми решениями:
59
На чем лучше всего писать маленький проект (такой как тетрис)? Сверх-язык программирования Новый язык программирования |
|
94 / 77 / 10
Регистрация: 22.12.2024
Сообщений: 528
|
|
| 22.07.2026, 22:15 | |
|
Etyuhibosecyu, можете пожалуйста дать короткое определение всем трем терминам?
1) Переменная 2) Константа 3) Литерал
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
||
| 23.07.2026, 10:36 | ||
|
Оказывается, за последние несколько месяцев много чего произошло.
https://red-star-soft.com/Lineedge/
ТС, видимо, сейчас полностью перешёл на новую игру Subords https://subords.com/ Главное, чтобы он не повторил тех же самых ошибок, что и в Линейке.
0
|
||
| 23.07.2026, 10:48 | ||
|
Но вообще странно, что человек который одной левой на раз-два пишет языки программирования, компрессоры, фреймворки и прочее, не может осилить UE C++ и мучается с блюпринтами.
0
|
||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||
| 23.07.2026, 10:53 | ||
|
0
|
||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
||
| 23.07.2026, 11:27 | ||
|
Я это к тому, что проблема ТС никак не связана с блюпринтами и при переходе на С++ его игры не станут лучше, а даже, как по мне, станут еще глючнее (будут утечки памяти и пр.).
0
|
||
|
94 / 77 / 10
Регистрация: 22.12.2024
Сообщений: 528
|
|
| 23.07.2026, 12:10 | |
|
Насколько помню, первая семи-альфа Subords планируется к выходу в 2030м году. Кто-то удивится, если новая игра ничем не будет отличаться от старой, отличия будет видеть только сам автор?
Тут как в анекдоте: "Цыганские учёные уже много лет работают над лекарством от рака, но получается пока только героин."
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
|||
| 23.07.2026, 12:20 | |||
|
0
|
|||
|
Труд вопреки насмешкам
|
|
| 23.07.2026, 12:55 [ТС] | |
|
Royal_X, вроде я написал почти исчерпывающее описание синтаксиса, протестируете язык? Или отказано?
Добавлено через 2 минуты К слову, я обнаружил ошибку в автоформаттере: он "ломается" на комментариях на всю строку или многострочных. Но, думаю, тестировать можно и без этого.
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
||
| 23.07.2026, 13:20 | ||
|
1
|
||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
||
| 23.07.2026, 14:19 | ||
|
помню, что когда-то ТС в системных требованиях упоминал даже серию Blackwell, которая даже не для обычных геймеров, а для всяких дата-центров и суперкомпьютеров...
0
|
||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
|
| 23.07.2026, 15:53 | |
|
Etyuhibosecyu, «тестировать язык» должны тесты. Тебе уже сто раз про это говорили. Но видимо игнорировать общие РАБОЧИЕ практики это твое кредо.
0
|
|
|
Модератор
|
|
| 23.07.2026, 15:56 | |
|
Видел тут про ленивые вычисления, так они вроде есть и в чистом шарпе.
А так думаю стоит выбросить UE и набраться опыта либо в юнити (ибо язык надстройка над шарпом) заодно можно зяык прикрутить к игре, либо в годоте. Требования буду поменьше да и судя по скринам, под те поделки ue излишен.
0
|
|
|
Труд вопреки насмешкам
|
|
| 23.07.2026, 17:01 [ТС] | |
|
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
||
| 23.07.2026, 17:14 | ||
|
0
|
||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
|
| 23.07.2026, 17:30 | |
|
2
|
|
|
Труд вопреки насмешкам
|
||
| 23.07.2026, 17:50 [ТС] | ||
|
0
|
||
|
Труд вопреки насмешкам
|
|
| 24.07.2026, 01:16 [ТС] | |
Unvariable (Pre-Pre-Alpha) 0.13Ссылка - Добавлена оптимизация рекурсии. В целом работает так же, как и классическая оптимизация хвостовой рекурсии, но в некоторых случаях работает и тогда, когда TCO бессильна (то есть - является надмножеством TCO). Тривиальная рекурсия (сложение идущих подряд натуральных чисел) на нашем основном компьютере (характеристики в профиле) выполняется до глубины 20М без оптимизации за 7 секунд, с оптимизацией - за доли секунды (точно измерить не получается, но с оптимизацией даже 1Г выполняется за несколько секунд, в то время как без оптимизации 20М - это предел, 21М уже повисает насовсем). Единственный недостаток по сравнению с классической TCO - чуть больше потребляет памяти, в пределах нескольких байт, редко десятков байт на уровень (соответственно, несколько мегабайт на миллион уровней). Ну и еще есть временная мера, что в вызове должно быть столько же параметров тех же типов, что и в функции, никаких params.- Исправлена ошибка с некорректным автоформатированием комментариев на всю строку. - Разблокированы циклы. Тем не менее, переменные на каждой итерации они не обновляют, единственное, что могут сделать - собрать список, добавляя по элементу или по несколько элементов за итерацию. Замеченные, но не исправленные ошибки- Можно поймать вылет транслятора, если экспериментировать с действиями без присваивания и без вызова (например, со строками, состоящими только из "x + y", где x и y - некоторые выражения, но без знака '=' и без вызовов функций). - В собранном EXE, после завершения приложения, выдается сообщение о "Необработанном исключении". На само приложение это не влияет. Это последняя полноценная версия Unvariable. Дальше возможны только билды, а если нет, то сразу "большой", не игрушечный язык. И открою страшную тайну, хотя, как я вижу, многие уже догадались, а один, возможно, догадался в первом же ответе: это не Шарп и не C#.NStar, это совсем другой язык, и это - "функциональный язык с человеческим лицом". Если вам нравится, можете считать его оберткой над Шарпом, ассемблер я, возможно, попробую написать, когда будет достаточно времени и энергии, но такое бывает одновременно крайне редко, поэтому не буду спорить, пусть будет обертка, но очень "толстая". Можете не тестировать, это технический патч, главной цели уже достигший.
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
|
|||
| 24.07.2026, 14:50 | |||
|
0
|
|||
|
Автоматизируй это!
|
|
| 27.07.2026, 17:15 | |
|
ух ты, Коля пытается F# изобрести...только не с человеческим лицом и без выведения типов
0
|
|
| 27.07.2026, 17:15 | |
|
Xana - язык программирования Lugha - опять Язык Программирования XMM - мой язык программирования Создадим свой процессор, свою операционку, свой язык программирования и свое ПО! Очередная моя попытка сделать свой 2D движок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|