Обзор на создание своего языка программирования |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2025-07-13 11:30 Предыстория и ввод в суть дела: компьютеры (они же ЭВМ, они же Шайтан-машины) работают не только по воле Божьей, но и по воле программистской, которая выражается в текстах, которые могут понять только такие же гиги, как те, кто и написал их, тексты эти. В общем то, на чём пишут драйвера и сотни клонов майнкрафта - это те самые языки. Разумеется, каждый гик должен накопить кучу старомодной техники, странных файлов с не менее странной информацией и написать свой интерпретатор или компилятор. Эти два последних чувака - виды языков. Интепретатор - это программа, которая читает с файла команды и исполняет их, а компилятор - это "программа-переводчик" с одного шайтан-языка на другой. Обычно компилятор переделывает код в код на языке ASSемблера, который по умолчанию понятен процессеру и им же исполняется. А теперь после такого ликбеза к истории. Ну... была научная группа, была лень учить другие языки программирования. В итоге для нужд научной группы был создан свой язык с блекджеком, временнцми петлями и henkamono (если хотите, могу отдельно запилить обзор на henkamono, здесь я этой темы касаться не буду). Итак, теперь можно начать, собственно, сам обзор. Порог входа (2/4): можно уже на втором курсе факультета ИТ в непрофильном вузе фигашить собственные ASSемблеро-подобные по синтаксису (но не семантике!) интерпретаторы. Код интерпретатора писался на C++ без ООП в говно-процендурной парадигме. Почему в говно-? Потому что вышел говнокод с примесью функциональщины. Почему без ООП? Лень было городить абстракции. "Ну там всего же две-три функции..." Ага-ага... теперь там 2 тыщи строк и мне всё это shit перелопачивать и переписывать в ООП. Потом как-нибудь (значит ли это, что никогда?). Что касается оборудования, то сойдёт даже старый ноут с бесплатным open-source набором компиляторов mingw. Заморочки (over 999/10): Пишите документацию параллельно написанию кода. Реально. Мне пришлось заново всё переделывать, так как "Ну... там документацию потом напишем! Там же всё просто!" Ага-ага... Пишите документацию сразу. Что касается остального, то тщательно отслеживайте, что вам пишет компилятор языка, на котором пишите свой язык (- Постмодернизм в действии, - скажете вы, и будете правы, но вообще-то языки программированря так и появляются). Даже если он, компилятор "родительского" языка, на котормо пишете свой, не выдал ошибок, это ещё не значит, что всё хорошо - всё перепроверяйте и тестируйте каждую новую функцию, добавленную команду и прочее. Профессиональное развитие (10/10): решаете интересные задачи, копошитесь в ошибках и учитесь новым трюкам. Понимаете на собственном опыте, почему умными шишками из НИИ и научных отделов корпораций было принято то или иное решение. При желании можете пройти весь путь эволюции от простейшего однобитного до терабайтового. Сюда же входит и понимание того, как реализовывать математику в коде (ряды Тейлора, теорвер и матстатистика). А ещё у вас появляется большая кодовая база с шаблонами и решениями многих проблем, которая никогда лишней не будет. Применение (10 000/10): можно крыть этой фигнёй практики, выбирая техническим заданием создание уже созданного языка. Можно выпендриваться во время проверок посещаемости, когда преподавателя нет в аудитории. - Что делаете? - спросит проверяющая. А вы ей в ответ: "У нас свой язык программирования с замыканием программы на первой и последней строчке при условии, что условие остановки не выполнилось" и показываете ей, проверяющей, инопланетный код на своём языке, который творит неведомую даже вам фигню. Ощущения и рост самомнения в такие моменты просто незабываемые. Полезность и самостоятельность (10/10): выделено в отдельный пункт, потому что в этом и была цель. Как уже было сказано, если у вас есть свой язык, то теперь вы boss of this gym - теперь вы вольны делать всё, что возможно, потому что вы обладаете всеми знаниями о своём языке, знаете его в совершенстве. Программирование на своём языке - это режим бога, в котором от вашей воли зависит всё. Теперь вы не зависите от библиотек (можете написать всё сами), теперь вы не зависите от чьих-то решений и стандартов, потому что это ваша территория, ваше слово - закон, а вы, чёрт побери, королева (отсылка на вторую или третью, точно не помню, серию пятого сезона "Доктора Кто"). Но есть и проблема. Вот создали вы Тьюринг-полный язык, на котором можно написать программу, вычисляюшую всё, что только можно вычислить. Радости так много, что вы пьянеете, даже если не пьёте. И тут вдруг оказывается, что вы написали такую туфту, на которой даже простые числа искать невероятно сложно. Тьюринговская трясина? Да, возможно. Что же делать? ПШЗ, конечно же - продолжать шевелить задницей! Если вы прошли этот путь, то вы отбитый отморозок, разовавший IT ещё только не успев войти в айти, так что назад пути у вас нет - дорабатывайте своё детищк, потому что, возможно, именно на нём вы сможете написать именно то, что вы хотие, решить именно ту задачу, которую перед васи нкито не ставил и никогда не поставит. Ну, а ещё язык можнов курсовую пустить. Творчество (null poniter exception/10): процесс этот творвеский и предполагает реализацию любой вашей больной идеи, родившейся в вашес разуме компьютерщика-извращенца. Язык инопланетян? Конечно! Застаить код крутиться снова и снова, возвращаясь в самое начало, пока не будет исполнен оператор остановки? Запросто! Впихнуть туда имитационную модель (M, R) системы Роберта Розена в качестве доступной программисту команды? Да, и сделать это нужно было с самого начала. Сделать операторы на японском языке? Да, и вообще на любом можно сделать. Создание своих языков программирования - это целаы вселенная, и вы ней - первооткрыватель! Общий итог: вкатиться в эту бесполезную тему очень и очень просто, осоьенно в наш век нейросетей. Если повезёт, звёзды сойдутся, а рак свиснет на горе, ваше детище резко взлетит, став популярным. Потом какая-то корпорация выкупит у вас права на язык, и вы станете миллионером. Хотя, скорее всего, вы так и останетесь шизом из подвала, японской девочкой, общающейся с ноосферой, и которую никто не понимает. И да, если устали, остановитесь, иначе можете перегореть и забросить это дело на полгода. Вот ссылка на репозиторий с исходниками, интерпетатором и документацией: https://github.com/Iwakawa-2173/Kikkago В том же репозитории есть набор простеньких программ на этом отбитом языке (версия так далеко не последняя, в сентябре залью последнюю). К записи прикреплены скриншоты с кодом на этом отбитом языке (фото, где нет консоли, а только код ра плюсах - это отрывок исходника интерпретатора моего языка). Мечтаю в будущем написать компилятор какого-нибудь высокоуровнего языка с нормальным синтаксисом в этот язык. Тогда мой вот этот язык станет исполнять роль виртуальной машины, которая и будет исполнять код, получившийся в результате перевода другого кода в ее язык. Желаю вам удачи на этом пути, если вдруг решитесь попробовать создать язык с какой-нибудь безумной фишкой, ломающей сами основания концепции программирования! Источник: github.com Комментарии: |
|