Форум программистов, компьютерный форум, киберфорум
Проекты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175

Пишу ЯП

27.04.2025, 11:54. Показов 11280. Ответов 155
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Вот уже не первый десяток лет разрабатываю Язык (не столько Программирования, сколько Перевода), в котором (внимание)
а) нет ни одной заранее сформированной изнутри команды (по типу любых управляющих конструкций - от классов до ветвлений), то есть абсолютно все команды вводятся пользователем
б) язык Абсолютно декларативен. То есть пользователю не требуется даже заботиться о том, чтобы хоть как-то объяснять, как должна работать его команда "под капотом". Все ради мысли сутью вне форм.

Звучит парадоксально? Тогда прошу читать далее.

Теорию Языка разрабатываю где-то с 13-16 года (в ~13ом возникло желание, а понимание, как... нет, не так, наметки понимания, как, начали приходить в 16ом году). Порядка десяти лет экспериментов, ошибок, хождений кругами и непрерывных обсуждений со всеми, до кого руки дотягивались, потребовались для того, чтобы завершить Теорию в полной мере. На данный момент я решил, что надо написать что-то наподобие мануала с тремя целями:

1.Мануал-руководство для использования
2. ...апгрейда
3.ТЗ первого прототипа Ядра.

Примерно, как это сделал Кнут в своей книге TexBook (им и вдохновлялся)

Вся информация о том, чем и где полезен такой язык - в первой главе мануала.

Мой мануал (первую его примерную часть) можно скачать тут:
https://github.com/AndreyPuchinin/Zer0-LaTeX.git

Файл AllZer0-25418.tex - то, что вам нужно. Это латех-документ, его надо сверстать в пдф.

На данный момент мне нужен фидбек по данному документу. В доке есть 7 упражнений (в соответствующую главу). Я прошу ознакомиться с Теорией (изложена пока лишь первая часть), и ответить на Упражнения, не заглядывая в Ответы (гиперактивные двусторонние ссылки ведут из Упражнений в конец дока и наоборот). А потом заглянуть и выполнить некое подобие работы над ошибками и поделиться результатами-соображениями. К слову, нейронка справилась практически идеально! (юзаю DeepSeek, но в основном, иногда другие, втч близняшек от гугла)

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

Заранее спасибо!

UPD: Язык изначально затевался как просто помощник в задаче создания Метода Бога для Твисти Пазлов (в основном, небандажных) для человеческих мощностей. Вряд ли тут кто-то сильно шарит за тему, но, возможно, мне удостоится честь стать прекрасным поводом открыть для себя TwistyPuzzles.ru(почти мертв) и .com

UPD2: и я был бы благодарен, если бы кто-то просветил меня, куда именно надо эту тему и с какими тегами...
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2025, 11:54
Ответы с готовыми решениями:

Пишу нейросеть, а она ни в какую не обучается
Добрый день, пишу нейросеть, а она ни в какую не обучается, помогите пожалуйста( import os...

При import keras пишет: Using TensorFlow backend
Установила библиотеку tensorflow, она работает. Установила keras а при import keras пишет: Using...

Telethon/openai. почему GPT-3 от openAi пишет полный бред, и отвечает на свои же сообщения?
Суть проблемы: Решил я значит поселить на аккаунт телеграма GPT-3 нейронку, чтоб за меня на...

155
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,342
Записей в блоге: 3
29.04.2025, 07:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от voral Посмотреть сообщение
дальше вообще ни хрена не понятно.
именно.
Лично я привык при изучении нового ЯП сначала видеть минимальный пример программы на этом языке, который можно выполнить. Отсюда вопрос: если Вы, вдруг, опубликуете минимальный код, этакий традиционный "Hello, world!", то где и как я могу этот код выполнить, чтобы посмотреть на результат?
0
133 / 57 / 2
Регистрация: 23.11.2024
Сообщений: 683
29.04.2025, 07:42
Цитата Сообщение от Noname2331 Посмотреть сообщение
"[[1,2,3,5],4,5,[[6,1,2]]]".toArray()
А как это работает, если на входе дерево, а на выходе массив?
Обход в ширину, обход в глубину?
если в дереве значения только в листьях, то обход в глубину (DFS) и обход в ширину (BFS) выведут одинаковые цепочки значений?
почему?

Тем более, что там дальше вызов flat. Получается, что результат парсинга это дерево из массивов разнотипных объектов?
0
18 / 40 / 8
Регистрация: 22.12.2024
Сообщений: 225
29.04.2025, 08:15
Tupiel Reuschin, как конкретно это работает - зависит от ЯП или библиотеки. Это абстрактная запись.

Ради интереса проверил на том, что было под рукой

Ларавеловская либа коллекций делает плоский список чисел, ликвидируя все вложенные массивы
PHP
1
collect([[1,2,3,5],4,5,[[6,1,2]]])->flatten()
Code
1
2
3
4
5
6
7
8
9
10
11
  #items: array:9 [
    0 => 1
    1 => 2
    2 => 3
    3 => 5
    4 => 4
    5 => 5
    6 => 6
    7 => 1
    8 => 2
  ]
Vanila JS ликвидирует только массивы уровня 2+. То есть надо два раза .flat() делать, чтобы добиться нужного результата.
JavaScript
1
[[1,2,3,5],4,5,[[6,1,2]]].flat();
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
[
    1,
    2,
    3,
    5,
    4,
    5,
    [
        6,
        1,
        2
    ]
]
1
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
29.04.2025, 08:17
Цитата Сообщение от Tupiel Reuschin Посмотреть сообщение
А как это работает, если на входе дерево, а на выходе массив?
Так тут читаемо же. На входе строка
1. toArray строку преобразуем в массив
2. flat преобразуем в одномерный
3. unique - обеспечиваем уникальность элементов
4. toString - в строку
1
18 / 40 / 8
Регистрация: 22.12.2024
Сообщений: 225
29.04.2025, 08:28
Поправлю еще сам себя. Такой "чейн" flat().unique() является скорее императивной записью, нежели декларативной.

Декларативно - это вообще .yml файл, как-то так:

Code
1
2
3
4
5
InputFormat: json
OutputFormat: json
Operations:
    - flat
    - unique
Или может кто получше декларативную конструкцию придумает? Чтобы декларативность не усложняла, а упрощала жизнь.
0
133 / 57 / 2
Регистрация: 23.11.2024
Сообщений: 683
29.04.2025, 10:12
Цитата Сообщение от Noname2331 Посмотреть сообщение
кто получше декларативную конструкцию придумает?
Синтаксис bash через пайпы. Там не надо формат указывать.
uniq, sort утилиты есть, но можно дописать ещё.
В powershell тоже что-то похожее

echo '[[1,2,3,5],4,5,[[6,1,2]]]' | jq -r 'flatten | .[]'
jq обрабатывает JSON, flatten разворачивает вложенные массивы, а .[ ] выводит каждый элемент на новой строке.
1
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,342
Записей в блоге: 3
29.04.2025, 10:28
Коллеги, все это - JS, PS etc... - познавательно и интересно, но хотелось бы получить комментарии от ТС-а по поводу работы его кода и среды выполнения его кода.
0
 Аватар для volodin661
6627 / 2258 / 346
Регистрация: 10.12.2013
Сообщений: 7,809
29.04.2025, 16:10
Цитата Сообщение от Tupiel Reuschin Посмотреть сообщение
В powershell тоже что-то похожее
Из похожего в сравнении с bash только сам символ трубы '|'
Всё остальное кардинально разнится.

Добавлено через 3 минуты
Цитата Сообщение от Noname2331 Посмотреть сообщение
"[[1,2,3,5],4,5,[[6,1,2]]]".toArray().flat().unique().toString ();
что же тут декларативного ?
0
133 / 57 / 2
Регистрация: 23.11.2024
Сообщений: 683
29.04.2025, 16:50
Цитата Сообщение от volodin661 Посмотреть сообщение
символ трубы '|'
И этого достаточно! Он символизирует.

Если бы не существовало аргументов/параметров (или бы их было точно определённое количество),
то можно было бы обойтись просто пробелами (и получился бы ФОРТ)
0
 Аватар для volodin661
6627 / 2258 / 346
Регистрация: 10.12.2013
Сообщений: 7,809
29.04.2025, 16:56
Цитата Сообщение от Noname2331 Посмотреть сообщение
JavaScript
JavaScript
1
"[[1,2,3,5],4,5,[[6,1,2]]]".toArray().flat().unique().toString();
Вношу 3 копейки:

Raku

Bash
1
raku -e 'use MONKEY; say unique gather "[[1,2,3,5],4,5,[[6,1,2]]]".EVAL».take'
output:
Code
1
(1 2 3 5 4 6)
1
18 / 40 / 8
Регистрация: 22.12.2024
Сообщений: 225
29.04.2025, 17:00
Цитата Сообщение от volodin661 Посмотреть сообщение
что же тут декларативного ?
Я исправил себя выше. Просто эти императивные вызовы при беглом взгляде читаются более декларативно (сразу понятно, что это), чем декларативный код ТС, на котором он сам описал, как надо парсить.
0
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175
30.04.2025, 03:47  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
Можете пошагово расписать как из [[1,2,3,5],4,5,[[6,1,2]]] получается [1,2,3,4,5,6] и как потом в эту же программу передать скажем [1,8,0,-1,2,3,4,[1,2,3,6],5,[[1,2,3,5],4,5,[[6,1,2]]],6] и на выходе получить
[1,2,3,4,5,6,8].
Могу, но я возьму примеры
а) попроще
б) больше в штуках, чтобы наглядно показать все ветви работы программы

Но для начала для этого я бы описал и привел Алгоритм Парсера по работе с Картами, а также блок-схему. Беру на эту задачу не более двух дней.

Сегодня я день потратил по вот этому сообщению (привел отрывок, просто чтобы не копировать все целиком)

Цитата Сообщение от Tupiel Reuschin Посмотреть сообщение
Грамматика - делится на морфологию и синтаксис
на повторение материала по грамматикам (которые в том числе проходил в универе), их составу и видам, а также еще некоторым концепциями, так сказать, готовился к будущему диалогу и ответам.

Пока что могу только привести тот конспект, который я сделал, тестируя нейронку (скоро приведу, в течении нескольких часов).

Добавлено через 1 час 19 минут
Цитата Сообщение от D1973 Посмотреть сообщение
хотелось бы получить комментарии от ТС-а по поводу работы его кода и среды выполнения его кода.
В работе. Простите, не успеваю - много дел. Но в указанные рамки пока точно укладываюсь.

Добавлено через 1 минуту
Я начал расписывать комментарии к коду, но понял, что без Алгоритма Парсера и (хотя бы, или чего-то вроде) блок-схемы это не окажется достаточно понятным
0
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175
30.04.2025, 03:48  [ТС]
Добавлено через 3 часа 33 минуты
Подводя под общий знаменатель (это не ответы по коду на моем ЯП, до них еще дня два (загруз). Пока лишь моя подготовка к разговору, просто настроился на общий язык - если у кого-то есть претензии, лучше сейчас, для того и делал)
0
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175
30.04.2025, 04:11  [ТС]
На всякий случай оставляю тут ссылку на самую свежую версию дока вне зависимости от времени (если кто-то будет читать ветку позже, и надо найти свежий док - делаю ссыль удобно специально для вас)
https://github.com/AndreyPuchinin/-.git
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
30.04.2025, 07:38
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
делаю ссыль удобно специально для вас)
Мелочь, но тем не менее. Если бы использовали Markdown - было бы "читабельнее". при этом, по сравнению с простым текстом, изменения мимнимальные
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
30.04.2025, 08:54
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Вот уже не первый десяток лет разрабатываю Язык (не столько Программирования, сколько Перевода)
Какого перевода? Для чего и зачем, не понятно?? На чём написан ваш язык?

Для обработки текста есть регурярки, вполне сносно справляются с задачей. Я правда на Rust свою реализацию регулярок написал, тоже над своим ЯП работаю.

Современные языки стараются рутинный функционал от вычислений косинусов, синусов и подобного, всякие если-то, итерации и тд., вспомогательных расчётов, шаблонных конструкций, реализовывать в самом языке и только вызывать в пользовательских программах с параметрами как функции. У вас же как я посмотрю, всё на пальцах так сказать происходит.. Вы сами-то писали программы на существующих ЯП?

ЗЫ. Я не буду вам больше что-то тут писать, нравится делать то, что вы делаете, можете продолжать. Вот только вы хотя-бы для себя определите зачем лично вам нужен ваш ЯП, что вы с его помощью сможете сделать. Если вас ответ устроит, флаг в руки, иначе подумайте, если вам оно не нужно, то другим то, тем-более это нафиг не упёрлось..
0
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175
30.04.2025, 10:49  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
использовали Markdown
Тоже резонно. Я работал в сублиме, у меня там плагины, в том числе самописные Кстати, в ветке (а также и за её пределами) уже жаловались на то, что

Цитата Сообщение от iifat Посмотреть сообщение
М-да. Чем-то напоминает компьютерный вирус для линукса, из анекдота. Ну тот, который пользователю «нужно» скачать, настроить под свой компьютер, скомпилировать и запустить.
Так что, есть контрмнение - чем проще, тем лучше... Как обычно, у каждого свое, а я не могу удовлетворить тотально всех. Впрочем это надо было заключать в "не по теме" - сейчас же я жду фидбека по содержимому данного файла. Прошу прочесть, перед тем, как задать очередной вопрос, который тут уже обсуждался (и будет обсуждаться в скором времени еще глубже) - без этого я не вижу возможности продолжать.

Цитата Сообщение от pgb Посмотреть сообщение
Какого перевода? Для чего и зачем, не понятно?? На чём написан ваш язык?
а) Все есть в доке, я уже устал твердить ответы на эти вопросы
б) Для создания любых диалектов
ц) Пишу на питоне (сейчас), но пробовал на разных (тоже уже сказал об этом...)

Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Например, я реализую Зеро на Питоне (хотя, было дело, пробовал это делать на разных Языках)
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
30.04.2025, 11:27
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Пишу на питоне
Так у вас не язык программирования, а просто модуль\библиотека для Пайтона. Думаю на нём уже есть решения и лучше вашего для работы с текстом.

ЗЫ. Я вам искренне сочувствую, 10 лет в пустую..
0
 Аватар для Andrew Puchinin
35 / 9 / 1
Регистрация: 25.04.2016
Сообщений: 175
30.04.2025, 13:40  [ТС]
Цитата Сообщение от pgb Посмотреть сообщение
уже есть решения и лучше вашего для работы с текстом
Повторяю - мне важно, чтобы было возможно использовать в коде абсолютно любые конструкции вместо уже заранее определенных. Фактически это значит, что данный текст, который я сейчас набираю, может быть воспринят как корректная программа - лишь бы структуру Карт описать. Питон так может?

ЗЫ: да, я понимаю, вы сейчас приведете довод "на питоне можно написать такую прогу (Автомат/... - подчеркните нужное)". Но я говорю о коде непосредственно на ЯП (в вашем случае - питоне). И еще раз, Питон так может? Как говорилось, некоторые ЯП могут самореализовать себе на себе же. Но, опять же, в этой реализации неизбежно будет использована та конкретная система команд, которую содержит ЯП. Суммарно: даже если ЯП может релизнуть самого себя, это не значит, что на нем (непосредственно на нем, а не программе на нем) возможны любые диалекты!

Например, одно из применений моего Языка - можно описать восприятие мат.-текста в той или иной нотации как инструкции к выполнению (к слову - это и есть основная причина его создать как инструмент к дальнейшим выкладкам). Фактически речь идет о создании любой системы команд (математической ли), вместо того, чтобы при этом реализовывать отдельный Язык - его Компилятор/Интерпретатор. Да, при этом жертвуется некоторыми вещами - например, скоростью или, от части, читабельностью (хотя тут дело привычки). Но зато я смогу безнаказанно менять правила нового ЯП на лету, "перепаяв" всего пару-тройку Карточек!

Поправочка: после создания конспекта

Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Подводя под общий знаменатель
я, вероятно, должен уточнить, что Зеро имитирует в первую очередь не Грамматику - а Синтаксис. Возможно, Семантику. Есть ли в нем полноценно Грамматика - не уверен. Технически Зеро не бьет код на лексемы и токены - и тут первое же и ключевое различие Зеро и других ЯП. Все дальнейшие вопросы с этого момента о моем ЯП с точки зрения других - все равно, что сравнивать ток с напряжением или шершавое с зеленым

Добавлено через 8 минут
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
да, я понимаю, вы сейчас приведете довод
еще одно отличие - если вы решите таки писать ЯП или его часть на Питоне, чтобы описать новую систему команд (например, для новой мат.нотации - кстати, того же Латеха и формул на нем!), вы можете прийти к необходимости строить Автомат. Но Автомат (как я, опять же, уже говорил) не имеет понятия "декларировать Нетерминал". Это значит, что, чтобы его использовать, надо его сначала определить. Но это ограничивает возможности. У меня же Карточка и её поля (значения) вводятся вообще в любом порядке, и, еще раз, это большая победа.

Добавлено через 54 секунды
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Подводя под общий знаменатель
Еще раз прошу у форумчан фидбека на док.
1
18 / 40 / 8
Регистрация: 22.12.2024
Сообщений: 225
30.04.2025, 13:43
Цитата Сообщение от Andrew Puchinin Посмотреть сообщение
Мне даже диплом запретили писать по этой теме.
Если бы у форума были полномочия запретить вам писать этот язык, то я думаю, все бы единогласно проголосовали за это. Для вашего же блага

Пожалуйста, прислушайтесь к фидбеку, потратьте лучшие года своей жизни на что-то конструктивное, практичное и востребованное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2025, 13:43
Помогаю со студенческими работами здесь

Сокеты ну и Networkstream, раз пишу в .Нет наверное сюда ;)
Если кратко то вопрос таков можно ли при вызове BeginRead у NetworkStream вызывать Write или...

пишу свой framework
Form.js /* * Core */ /* пара вспомогательных функций */ function...

Пишу аналог Radmin - нужна Ваша помощь
Приветствую всех участников форума. У меня есть вопрос: Вступление. Я пишу аналог программы...

пишу плагин для IExplorer`а
вобщем сам плагин кое-как написал, работает. но вот с чем столкнулся: SHDocVw.InternetExplorer...

Пишу калькулятор....
Программированием начал заниматься недавно.. решил написать калькулятор, так вот, если вводить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru