|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
|
Новый язык программирования мечты. Полёт фантазии22.08.2026, 20:54. Показов 2600. Ответов 40
Метки нет (Все метки)
В образовательных целях и как хобби, я в свободное время проектирую свой кустарный процессор. Сейчас нахожусь на этапе создания простейшего языка программирования, который будет преобразовываться в ассемблер. Столкнулся с тем, что все мои "гениальные" идеи разбиваются о реальность - в старом добром Си это сделано уже лучше и оптимальнее некуда
Ничего лучше Си для генерации Ассемблер команд никогда не придумают. А если нужно еще и ООП, синтаксических сахарок и STL, то ничего лучше С++ никогда не придумают.И ничего лучше RISC ISA в чисто техническом плане тоже не придумать, поэтому буду переделывать и переименовывать свои ассемблер инструкции на стандартные для Risk-V. Ну в общем все тлен, и новый велосипед никогда не придумают, ведь у текущего уже есть и круглые колеса и переключатель передач, и даже звоночек с катафотом. Конкурентные преимущества языков программирования сейчас кроются только в "средах": в социальных или комерс комьюнити, которые создают, продвигают и поддерживают специальные библиотеки и документации для любого чиха и пука, разные удобные IDE, коучей, курсы и т.д. Чисто технически уже давно любой язык можно и компилировать и интерпретировать во вкладке браузера, запускать любую программу на любом ЯП на любой ос, лишь бы юридически было ок. И сконвертить одно в другое с ИИ - раз плюнуть. Интересно услышать ваши мысли по этому поводу. Ничего нового уже не будет, классика устоялась? Или все же создадут какой-то язык программирования, который станет революционным, ну например как-то по особому свяжется с ИИ или квантовыми штучками... Или с чем-то еще, что сейчас в духе времени.
0
|
|
| 22.08.2026, 20:54 | |
|
Ответы с готовыми решениями:
40
Полет пули. язык 1С- это язык??? Забытый странный язык. "Мертвый" язык |
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 28.08.2026, 21:51 [ТС] | ||
|
Я на какое-то время погрузился в ФП, написал много чего декларативно, все очень нравилось. Идея чистых функций без побочных эффектов - здорово, а вот все остальное... Через пару лет вернулся к тому коду, сижу, переписываю на том же ЯП, но через последовательные линейные процедуры, чтобы что-то понять и исправить. В итоге получается все намного проще, эффективнее и короче. Ну это, возможно, потому что у меня очень мало опыта конечно в ФП, тут вы правы.
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 31.08.2026, 10:53 | |
|
0
|
|
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 31.08.2026, 14:39 [ТС] | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 31.08.2026, 17:52 | ||
|
В ООП языках (иногда) используют такой же подход ("флуент интерфейс") В ФП языках (иногда) пишут построчно: y = f x z = g y ... Обычно автор выбирает тот вариант, который ему (субъективно) кажется более удобным. Есть ещё такой вариант: x |> f |> g (x передаётся в f, результат передаётся в g) и такой: g <| f <| x
0
|
||
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 31.08.2026, 18:21 [ТС] | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 01.09.2026, 11:12 | ||
|
Если смущают змеи, то не используйте их (пока не появится такое желание). Пишите по одному вызову функции в одной строке.
1
|
||
| 01.09.2026, 16:26 | ||
|
Предлагаю проверить/сравнить то же "мапирование" на реальной задачке (ее достаточную простоту гарантирую )
0
|
||
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 01.09.2026, 21:36 [ТС] | ||
![]() Вот интересно, а чем функциональный ЯП конкретно помогает в этом, в чем профит? Эти математические формулы можно применять в любой парадигме, чем синтаксические ограничения ФП помогут, если прогер тупо не понимает бизнес логики, не видит связи с простой математической формулой? Сдается мне, если не понимать сути бизнес процессов и не знать математики, можно и на чистых функциях без побочек наворотить всякого в отрыве от реальности... Еще хуже будет, чем с побочками и на ООП или даже на ассемблере.
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|||||||||||||||||||
| 02.09.2026, 11:06 | |||||||||||||||||||
|
Переход от Ассемблера к Си позволяет писать "for(int i = 0; i < len; i++) doSomething(arr[i]);". Тем самым скрываются технические детали (метки, условные переходы и т.п.) и уменьшается вероятность забыть изменять счётчик. Переход от Си к Haskell позволяет писать "map doSomething". Тем самым скрываются технические детали (цикл, счётчик и т.п.). Во-вторых, делает код более кратким. Это (при опыте) позволяет быстрее разобраться в коде. Особенно, если рассматриваемый кусок кода умещается на одном экране. В-третьих, более краткий код позволяет создавать новые типы везде, где они нужны (чего обычно не станут делать программисты на C++ или C#). Например, в программе есть класс Документ со свойством Название. Каждый метод, использующий название, будет начинаться с проверки, что Название не пустое, и длина не превышает максимально разрешенный размер. А когда для определения нового типа нужен не отдельный файл, а одна строка, то естественно сделать тип НазваниеДокумента (содержит строку, гарантированно удовлетворяющий всем требованиям), значением свойства Название и входным параметром функций будет не Строка, а НазваниеДокумента. В-четвёртых, размеченное объединение чаще лучше подходит по смыслу, чем иерархия классов. Пример на haskell (с размеченными объединениями):
Но самое неприятное в этом коде - это случай default в switch. По (бизнес) логике мы туда не можем попасть, а по синтаксису - можем и должны предусмотреть. И это не только лишний (не соответствующий бизнес логике) код, но и отсутствие ошибок компиляции при добавлении ещё одной альтернативы "public record Loading() : Result".
0
|
|||||||||||||||||||
|
23 / 33 / 2
Регистрация: 23.02.2023
Сообщений: 92
|
||
| 02.09.2026, 14:10 | ||
|
1 собирали процессор с Архитектурой набора команд ISA) — определяющая программируемую часть ядра процессора. На этом уровне определяются реализованные в процессоре конкретного типа: архитектура памяти, взаимодействие с внешними устройствами ввода/вывода, режимы адресации, регистры, машинные команды, различные типы внутренних данных (например, с плавающей запятой, целочисленные типы и т. д.), обработчики прерываний и исключительных состояний. 2.далее шел опкод и машинные команд (Код операции, операционный код, опкод — часть машинного языка, называемая инструкцией и определяющая операцию, которая должна быть выполнена.) 3. из опкода и машинных команд получался ассе́мблер Язы́к ассе́мблера (англ. assembly language, разг. ассе́мблер) — представление команд процессора в виде, доступном для чтения человеком. Язык ассемблера, или просто ассемблер — низкоуровневый язык программирования, использующий мнемоники, инструкции и операнды для представления машинного кода. Это улучшает читаемость при сохранении полного контроля над машинными инструкциями. а уже потом всякие языки высокого уровня. так что вы начали строить дом с крыши
0
|
||
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 02.09.2026, 14:32 [ТС] | ||
|
Shamil1, вроде все это так или иначе и в мультипарадигменных языках реализуется, но без самобичевания и жестких ограничений, можно держать дисциплину, но иногда ослабить ее
0
|
||
|
23 / 33 / 2
Регистрация: 23.02.2023
Сообщений: 92
|
||
| 02.09.2026, 15:41 | ||
|
макро ассемблер разновидность ассемблера макросы являются кирпичами для строительства ЯП
0
|
||
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 02.09.2026, 15:50 [ТС] | ||
|
Пока что у меня получается ЯП, который представляет собой JSON с массивом, где каждый элемент - это как-бы одна строка кода, команда и операнды. Типа [ ['add16', 'адрес1', 'адрес2', 'адрес3'], ['cmp', 'адрес4', 'адрес3'], ] И отдельно есть объект, где хранится описание адресов. Что-то вроде: адрес1 - 16 битное число, значит следующие 16 бит нельзя занимать, бронируется 2 ячейки адреса сразу (значит команда 1 выдаст ошибку еще при компиляции), и еще куча настроек есть.
0
|
||
|
23 / 33 / 2
Регистрация: 23.02.2023
Сообщений: 92
|
|
| 02.09.2026, 16:19 | |
|
все как-то сложно
для таких вещей есть регистры если шина 8 бит то и рег 8 битные на апп уровне это защелки и все операции происходят в них add r1,r2 либо add r10,r12 adc r11,r13 add сумм adc c переносом пара r10,r11 типо 16бит мнемонику взял с avr инкремент на aпп счетчик прямой дискремент на aпп счетчик обратный inc r1 dec r1 регистр в счетчик и слк звчем велосипед изобретать полно литературы
0
|
|
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 02.09.2026, 16:25 [ТС] | ||
|
И нахрен этот слк пока что, все асинхронно и последовательно будет, в самом простом варианте.
0
|
||
|
23 / 33 / 2
Регистрация: 23.02.2023
Сообщений: 92
|
||
| 02.09.2026, 16:47 | ||
|
и чего только не было Ваши рассуждения близки с фон Нейманом
0
|
||
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 02.09.2026, 16:53 [ТС] | ||
Буду переносить программу в память, сот-нно да, архитеутура становится Фоннеймановская.Кстати, может посоветуете что-то для обучения. Я обучался на компьютерной игре, где надо воссоздать с нуля MOS 6502 процессор (это на приставке Денди такой) + прошел (прослушал) современный университетский курс по архитектуре процессоров. Хочется что-то еще узнать.
0
|
||
| 02.09.2026, 17:06 | |||||||
Вот пример мелкой но практической задачи. Заметим что даже такие не сводятся к "голой технике"
0
|
|||||||
|
1853 / 1201 / 502
Регистрация: 14.10.2018
Сообщений: 3,343
|
|
| 02.09.2026, 17:11 | |
|
Еще интересен момент по поводу библиотек. Многие программы написанные на одном языке используют по сути одни и те же библиотеки базовые. А смысл их дублировать в каждый проект (питону привет). И вот что лучше - у каждого проекта своя база или одна на всех? А если она единая - то надо как то грамотно интегрировать ее в ОС.
0
|
|
|
95 / 82 / 10
Регистрация: 22.12.2024
Сообщений: 555
|
||
| 02.09.2026, 17:18 [ТС] | ||
Почему люди общаются на разных языках, хотя передают один и тот же смысл друг-другу. Почему один узурпатор-правитель не может завоевать весь мир, всегда что-то мешается и встревает, конкуриует. Почему все ЯП не могут использовать одну STL. Потому что мир общий, принадлежит Богу, а не одной частной шараге.
0
|
||
| 02.09.2026, 17:18 | |
|
Хочу научиться программированию. Какой язык выбрать? Помогите выбрать язык программирования Идеальный язык программирования с чего начать изучать язык программирования и какой именно Какой изучать язык программирования? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|