Пишешь такой мвой язык программирования, написал, а потом такой, о, теперь я напишу свою операционную систему, на своём же языке 😄
@random_company8 сағат бұрын
А я ведь так и сделаю, правду первую низкоуровневую часть кода написал на чистом C и GAS с NASM, GAS отвечает за загрузку операционной системы, за все остальное NASM и C, более высокоуровневые вещи буду писать на RL ( мой компилируемый объектно ориентированный язык программирования ), драйвера буду писать также на C, визуальный движок я буду писать также на RL, я решил использовать веб - дизайн для визуального движка, т.к будет html, css и rl файлы, я думаю в веб дизайне будущее, можете посмотреть что получилось за неспешную работу за лето в одном шортсе)
@yashenkinКүн бұрын
LLVM IR - это практически прямое преобразование (через AST) из пользовательского кода (твоего языка программирования). И это значаит, что оптимизаций там и не должно быть - это представление высокоуровневого алгоритма, который пишет программист на твоём языке. Например, ты пишешь сортировку пузырьком, либо быструю сортироку на своём языке. При этом в каждом случае получается свой IR выхлоп, который затем будет пропущен через цепочку оптимизаций в оптимизаторе (это часть бэк-энда LLVM, а ты пишешь фронт-энд, генерящий IR), в зависимости от опций командной строки. И вот на стадии преобразования из IR в маш-код всё и будет оптимизировано. Ну а IR содержит саму реализацию замысла программиста. И вот в случае быстрой сортировки программа будет сортировать быстро, даже массив из ста миллионов элементов, а в случае сортировки пузырьком ста миллионов элементов можно будет жениться, нарожать детей, уйти на пенсию и наконец дождаться завершения сортировки. И никакие оптимизации низкого уровня не помогут пузырьковой сортировке. Так что, преобразовывая в IR, ты получаешь оптимизированный, либо не оптимизированный код, в зависимости от того, как скажешь бэк-энду и тут нельзя сказать, что получился неоптимальный код.
@kingmang_it13 сағат бұрын
Интересно получилось
@Dranrel14 сағат бұрын
Написание чего-то своего - это почти всегда и самое лучшее, что ты можешь начать делать и самое разочаровывающее, когда все не получается сразу, сходу или если ты не видишь бесконечных перспектив у своего детища. Ваша идея с "патч-языком" весьма интересна на уровне концепции. Любую часть кода можно изменить и если я правильно понял - изменить на лету, пересобрав нужную часть с учетом "патча". И если бы удалось сделать его "прозрачным" на "патчирование" - тогда вообще был бы шикос. Под прозрачностью я подразумеваю постоянный указатель на "точки" патча, сродни git diff. Если подобный язык сделать высокопроизводительным и легким - его вполне себе можно было бы взять на замену Lua, как основу для модинга и модификации БЕЗ изменения ядра продукта(что является частой проблемой, если быть честным). А если любое поведение программы можно было бы модифицировать и модифицировать "вложенно"(вносить патч в уже примененный патч) и откатывать целиком - это могло бы иметь успех, на мой взгляд, во фреймворках или движках. Весь вопрос только в том.... А есть ли у этого достаточные перпективы, чтобы как решить современные проблемы, так и стать хорошей заменой многим современным языкам? Думаю если бы вы смогли довести язык до рабочего состояния, хотя бы с минимумом жизненно-важных функций и попытались бы внедрить его в потенциально успешнный проект, то его может быть даже получиться сохранить на плаву и развивать через комьюнити. А под слоган взять "модификация без потери производительности, с минимумом кода"(чтобы попытаться привлеч как "задротов", так и "лентяев") :)
@cavesalamander6308Күн бұрын
В древности (конец 80-х) переболел в виде бейсика и форта, поставив их на очень экзотическую платформу. На форте даже сделал один эксперимент (обмер диаграммы направленности самодельного детектора субмиллиметрового излучения, который хотели применить в интерферометре для диагностики плазмы). И да, после этого болезнь прошла, хотя позже (конец 90-х) был рецидив с попыткой создания небольшого языка для пакета обработки сейсмоданных с набором плагинов-обработчиков, но это другая история...
@ИбрагимДринкерманн2 күн бұрын
Писать свой ЯП это не самая дичь, полезно в принципе, если делать нефиг.
@АндрейГорабунков2 күн бұрын
Вау! Очень круто! Снимай еще, с меня лайк и подписка! Ты такой умный!
@grandlagging0zero17516 сағат бұрын
страдалец...такой сложный путь избрал... удачи в расширении своего яп! надеюсь ты не пойдешь по моему пути и не будешь писать свой яп 7 лет...
@АндрейМалышев-я3зКүн бұрын
Круто, продолжай!
@semyonivanov5718 сағат бұрын
Это будет убийца жабаскрипта или си крест крест??
@CJSurv20 сағат бұрын
Чувак изобрел аспектно-ориентированное программирование. В наше время довольно мертвая концепция, за исключением некоторых извращенцев на языках вроде джаваскприта и руби, где из-за отсутсвия типов оно вырождается в monkey patching, нигде не применяется
@PimPumSObakaКүн бұрын
Прикольно, я сам щас делаю свой язык на базе LLVM IR и с идеей поддержки C и разных фич из Раста и шарпа. Ток угарно видеть static class с static методами, который по факту то можно и в обычный класс переделать и странный концепт контекста, а не Stream в который просто пишешь данные и в случае ошибки просто Flush :) Как будешь реализовывать рантайм ошибки и ошибки компиляции? Сколько времени потратил на компилятор из конца видоса?
@sergeyb282323 сағат бұрын
В 90-х работал я в одной конторе и там чувак один тоже начал писать свой язык программирования. Я к нему ходил иногда подсматривал - там и операнды свои были, и синтаксис, и компилятор, всё по взрослому.. А потом его уволили. Я спросил у начальника - а почему уволили? Начальник ответил "потому что занимался хернёй".
@el-purrКүн бұрын
Прикольно
@yashenkinКүн бұрын
на вот ещё по LLVM материал kzbin.info/www/bejne/r3bHoIukesaAqNk
@Smalin77715 сағат бұрын
Нихрена не понятно, но очень интересно.
@extendedMan7 сағат бұрын
🤣🤣🤣
@sib3546Күн бұрын
О! тебе нужен HiASM 🤣
@zeganstyl2 күн бұрын
С концепцией языка не очень понятно. Чем он будет отличатся от остальных? Лучше расскажи подробнее про Harmony, что это и как оно работает.
@gerodstudioКүн бұрын
Это просто идея, которая должна быть материальна в миг твоей карьеры. Зачем, для чего - неважно! Главное, что ты написал язык! Свой!
@Al_K_WIW3 күн бұрын
Интересно, почему все пишут: "создаю свой ЯП", "создаю свою ОС", "создаю свою игру". И только бил гейтс говорил: "пишем ОС для всех".
@user-jd1mq8gg7eКүн бұрын
Потому что гейтс сам не писал ОС, а купил ее чтобы самому делать бабло
@Happy-GappyКүн бұрын
Ты хоть видел что собой в итоге представляют все эти "свои ОС", "свой ЯП", "своя игра"? Вот, вот, и я о том же :) На Хабре я насчитал больше 8 топиков где кто то брался писать "свою ОС", но в итоге забрасывали это делать, потому что это очень даже сложно. А если кто то и делал до конца, то это не ОС была от слова совсем по сути своей. Потому что ОС, языки програмирования это достаточно непростая задача.
@bipolar-fox12 сағат бұрын
Есть такая байка, что каждый программист в своей жизни должен написать свой язык, свою ОС и компьютерную игру ) Типа как посадить дерево, построить дом и вырастить сына у нормальных людей ))
@random_company8 сағат бұрын
Про язык и игру уже готово у меня, операционная система тоже почти готово, на процентов так 20, ну минимальная колхозная ( пока ) командная строка есть, работа с питанием есть, графический режим есть, шрифт есть, звук 4 битный есть ( пока 4 битный, мне больше пока и не нужно, потому что просто проигрываю мигалку скорой помощи при предупреждение об возможной ошибки, и когда ошибка произошла проигрывается звук сирены, только тогда когда это ошибка не фатальная. Отличии обычной от фатальной ошибки проста, обычная ошибка вызывается ядром ( т.к можно проигнорировать и продолжить использование, а в случае с фатальной ошибкой она вызывается уже не ядром ( как можно подумать ), а вызывается в большинстве случаях аппаратным прерыванием ( вызывается оборудованием ). Осталось только мемори менеджмент, таск менеджмент, визуальный движок и т.д и т.п. Подробнее ознакомится с моим проектом можно у меня на гитхаб репозитории.