Короче, пробывал я тут переписать все ядро Minuet в С++. Даже беглый обзор лиснигов говорит о том что это задача трудно разрешаемая вернее откровенно будем говорить вообще не разрешима. Основная причина - компилятор, ни GCC ни лбой другой из мне известных такие фокусы как перевод процессора в защищенный режим после того как часть программы уже отработало не разрешает. Ну хотя наверно возможно но слишком уж мудрено ыйдет.
Тогда я решил испробовать написать хоть несколько программ на С++ для Minuet, воспользовался статьями котрыйе месные юзеры в изобилии запостили. Большинство подходов кроме GCC, основываются на получении от компилятора ассемблерного кода, преобразования его в FASM и ассемблирования полученого.
Не мне вам говорить что приятного в таком способе мало, особенно в отладке.
Потому думаю что надо написать компилятор с С++ для колибри, тут пока все кричат ( и даже делают) про паскаль, яву переделывают убогие полуучебные С компилеры для С, юзают диалекты вроде С--. При этом самый распространенный на сегодня язык (в том числе и для системного программирования) отается как бы за кадром. Посему предлагаю создать компилятор С++ для minuet причем способный компилировать и сам себя, интегрированый с FASM, с утилитой make вроде ANT и полноценной IDE на подобие скажем CBuilder или Eclipse IDE.
Компилятор с C++ для Minuet
-
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.
Я знаю что тебе ответят
SHREDER, я не так уж давно на этом форуме, но суть усвоил четко
Идей хороших и плохих много, а вот программистов очень мало.. а так как проект open source (бесплатный), то каждый делает то, что ему интересно, что ему нравится, чем ему хочется заниматься.
Тебе хочется c++ компилятор? ..пожалуйста, пиши
Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..
Идей хороших и плохих много, а вот программистов очень мало.. а так как проект open source (бесплатный), то каждый делает то, что ему интересно, что ему нравится, чем ему хочется заниматься.
Тебе хочется c++ компилятор? ..пожалуйста, пиши
Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..
Ну ты посмотри исходный код, по сути все основное из Minuet.Serial wrote:SHREDER, я не так уж давно на этом форуме, но суть усвоил четко
Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..
Я бы с удовольствием сам написал компилятор сам года этак за полтора, если бы временем располагал. Но с моей нынешней работой и уходить -темно и приходить - темно.
Посему поставить бы где нить SVN и начать потихоньку. Можно првда поробывать уболтать руководство моей компании на девелоп компилера, но на опен сурс они никогда не согласятся.
У кого какие идеи есть по компилеру постите, а не флеймерите типа нах нужен С++ и т.д. То что он нужен это очевидный факт.
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.
http://meos.sysbin.com/viewtopic.php?t=447 "Компилятор Си"
http://meos.sysbin.com/viewtopic.php?t=565 "Tiny C Compiler"
http://meos.sysbin.com/viewtopic.php?t=648 "Open Watcom и Kolibri SDK"
http://meos.sysbin.com/viewtopic.php?t=658 "nasm, vc, gcc и другие"
Давайте создадим ещё 10 тем.
http://meos.sysbin.com/viewtopic.php?t=565 "Tiny C Compiler"
http://meos.sysbin.com/viewtopic.php?t=648 "Open Watcom и Kolibri SDK"
http://meos.sysbin.com/viewtopic.php?t=658 "nasm, vc, gcc и другие"
Давайте создадим ещё 10 тем.
Хочешь компилятор Си++ - помоги портировать тот, что уже доказал свою эффективность и работоспособность. Давно пора понять, что 3 одинаковых проекта всё равно когда-нибудь станут одним целым, там почему не слиться сразу, не подумать наперёд.
А кстати почему именно C++? Почему бы не сделать компилятор для языка D, например.
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D
Короче говоря дело в следующем. На самом деле компиляторов с С++ не такое уже и великое множиство, сегодня
обще известные MSVC++, Borland, Intel, GCC. Исследования показывают что самый высококачественный код создает как не странно Borland, однако из собственного опыта замечу что сам компилятор содержит массу ошибок и посему генерирует баги в логически совершенно верном коде. Майкрософт и интел приблизительно на одном уровне (несмотря на распространенное мнение что интел лучше), а гну самый плохой (минимальная программа для Windows например просто с Win 32 API составляет аж 1 МБ тогда как борланд 13 КБ а MSVC++ 17 КБ) . Все выше перечисленное имеет свобдные версии (интел правда только для линукс). Исходный код доступен только GCC, хотя на самом деле он тоже собственность Red Hat и разрабатывается его подразделением Cygnus. Кто смотрел исходники GCC поймет что их даже собрать с помощью make тяжело, сложнее даже чем ядро линукса и намного сложнее чем Kolibri. В общем его портация и интеграция с FASM практически смысла не имеет никакого.
Watcom умер так давно что и вспоминать не хочется, после чего и стал открытым. Компилер не подерживает много чего нового например шаблоны типа (templeate). Без этого получается не С++ а скороее С с классами.
"nasm, vc, gcc и другие" - это как раз подход программировать под Minuet, Kolibri и другие клоны из другой ОС вчем приятного очень мало.
Короче сейчас еть проект убогий компилер Tiny C Compiler у мну есть варианты исходников датирующихся аж 1982 годом за два года до мого рождения. Это на самом деле не компилятор а транслятор в ассемблер, уже переделаный для трансляции в FASM, посколку писать сам компилятор целиком на ассемблере уж больно долго почему бы не взять Tiny C Compiler и по пытатся написать на нем полноценный С++ компилятор? Собственно чем я по вечерам и обедам и займусь.
Касательно IDE довольнодавно мне попался на глаза проект http://www.codeblocks.org/ весьма хорошая вещь надо сказать, исходники открыты, работает с кучей разных компиляторов. Сам проект аналог Borland C++ Builder X только лучше. Среда легко подключается к любому компилятору. К тому же среда позволяет создавать шаблоны к
http://www.wxwidgets.org/ - отличная GUI библиотека примечательна тем что в отличие от QT интегрируется с системными компонентами GUI, а не рисует собственные. Среди девелоперов много наших (русско язычных). Можно будет портировать и для Minuet (думаю стоит об этом попросить самих девелоперов).
Короче, для эффективного прикладного (а может быть и системного) программирования для Minuet не хватает компилятора работающего из самой системы. Все остальное, либы IDE и т.д можно будет потом легко портировать.
обще известные MSVC++, Borland, Intel, GCC. Исследования показывают что самый высококачественный код создает как не странно Borland, однако из собственного опыта замечу что сам компилятор содержит массу ошибок и посему генерирует баги в логически совершенно верном коде. Майкрософт и интел приблизительно на одном уровне (несмотря на распространенное мнение что интел лучше), а гну самый плохой (минимальная программа для Windows например просто с Win 32 API составляет аж 1 МБ тогда как борланд 13 КБ а MSVC++ 17 КБ) . Все выше перечисленное имеет свобдные версии (интел правда только для линукс). Исходный код доступен только GCC, хотя на самом деле он тоже собственность Red Hat и разрабатывается его подразделением Cygnus. Кто смотрел исходники GCC поймет что их даже собрать с помощью make тяжело, сложнее даже чем ядро линукса и намного сложнее чем Kolibri. В общем его портация и интеграция с FASM практически смысла не имеет никакого.
Watcom умер так давно что и вспоминать не хочется, после чего и стал открытым. Компилер не подерживает много чего нового например шаблоны типа (templeate). Без этого получается не С++ а скороее С с классами.
"nasm, vc, gcc и другие" - это как раз подход программировать под Minuet, Kolibri и другие клоны из другой ОС вчем приятного очень мало.
Короче сейчас еть проект убогий компилер Tiny C Compiler у мну есть варианты исходников датирующихся аж 1982 годом за два года до мого рождения. Это на самом деле не компилятор а транслятор в ассемблер, уже переделаный для трансляции в FASM, посколку писать сам компилятор целиком на ассемблере уж больно долго почему бы не взять Tiny C Compiler и по пытатся написать на нем полноценный С++ компилятор? Собственно чем я по вечерам и обедам и займусь.
Касательно IDE довольнодавно мне попался на глаза проект http://www.codeblocks.org/ весьма хорошая вещь надо сказать, исходники открыты, работает с кучей разных компиляторов. Сам проект аналог Borland C++ Builder X только лучше. Среда легко подключается к любому компилятору. К тому же среда позволяет создавать шаблоны к
http://www.wxwidgets.org/ - отличная GUI библиотека примечательна тем что в отличие от QT интегрируется с системными компонентами GUI, а не рисует собственные. Среди девелоперов много наших (русско язычных). Можно будет портировать и для Minuet (думаю стоит об этом попросить самих девелоперов).
Короче, для эффективного прикладного (а может быть и системного) программирования для Minuet не хватает компилятора работающего из самой системы. Все остальное, либы IDE и т.д можно будет потом легко портировать.
SHREDER
Watcom поддерживает шаблоны. Для него написали много нового. Конечно качаство кода уступает MSVC, но за коммерческими угнаться сложно. А вот скорость компиляции очень хорошая. Дум компилируется и линкуется за 10-15 секунд
Watcom поддерживает шаблоны. Для него написали много нового. Конечно качаство кода уступает MSVC, но за коммерческими угнаться сложно. А вот скорость компиляции очень хорошая. Дум компилируется и линкуется за 10-15 секунд
Потому что это самый распространенный язык программирования. Конечно D может быть чем то и лучше, но кто на нем программирует?zhenya_k wrote:А кстати почему именно C++? Почему бы не сделать компилятор для языка D, например.
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D
Есть ли к нему такое же колличество тулзов и библиотек?
Сколько полезных программ и технологий, которые можно портировать в Minuet, доступны в исходника D?
Конечно С++ очень сложный язык как для изученя так и для реализации. К тому же содержит устаревшие описания из С. Стандарт языка ISO/IEC 14882 стремительно стремится к 1000 странриц. Тем не мение без С++ сегодня никак причем практически во всех областях программирования.
2 По поводу ваткома хорошая идея бы была портировать его под Minuet и интегрировать с FASM. А сами исходные коды модернизировать для полной поддержки стандарта ISO/IEC 14882 и лучшей производительности. Code::Blocks умеет с ним работать, остается только лиш перекомпилить ее исходные коды готовым компилятором и получить готовую версию для Minuet. Лучше начинать не же начинать не с нуля!
Кто за ?
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.
Я за (если это что то значит...)
Чем смогу помогу (в зависимости от свободного времени и настроения/желания)
Чем смогу помогу (в зависимости от свободного времени и настроения/желания)
Тема с компиляторами языков высокого уровня поднималась много раз..........
А чем закончилось ?
А всё тем же - пустой болтовнёй.Делать как обычно некому.
Уж сколько раз говорили, что написать libC надо для полного портирования компилятора в Колибри.Некоторые говорили, что это не сложно.
Однако при этом ничего не писали,а просто созерцали, когда кто -нибудь другой займётся этим.
SHREDER., ты разбираешься в теории компиляторов ?
Ты когда- нибудь пробовал написать хоть простенький компилятор ?
Если нет, то ни о каком написании компилятора и речи быть не может.Будет только пустая болтовня.
А чем закончилось ?
А всё тем же - пустой болтовнёй.Делать как обычно некому.
Уж сколько раз говорили, что написать libC надо для полного портирования компилятора в Колибри.Некоторые говорили, что это не сложно.
Однако при этом ничего не писали,а просто созерцали, когда кто -нибудь другой займётся этим.
SHREDER., ты разбираешься в теории компиляторов ?
Ты когда- нибудь пробовал написать хоть простенький компилятор ?
Если нет, то ни о каком написании компилятора и речи быть не может.Будет только пустая болтовня.
И внёс свой веский вклад в пустую болтовню...
andrew_programmer
....ать еслиб не разбирался то тему не поднимал бы.
Я вот просто думаю как лучше:
Начить все писать с нуля написав нечто с рекурсивным спуском.
Сгенерировать YACC или FLEX лексический и синтаксический анализаторы
получить C код, после чего написть генератор внутренних представлений
и компоновщик. потом уже конечно нужны будут утилиты типа make и т.д.
Взять уже готовый компилятор в исходниках и перекрутить его под minuet и FASM
(не факт что самый простой метод).
P.S. Просьба ко всем не равнодушным с реальным IP и не лимитированным доступом к инету, поставте SVN и видилите URL я у себя не могу т.к. в инет выхожу через прокси.
....ать еслиб не разбирался то тему не поднимал бы.
Я вот просто думаю как лучше:
Начить все писать с нуля написав нечто с рекурсивным спуском.
Сгенерировать YACC или FLEX лексический и синтаксический анализаторы
получить C код, после чего написть генератор внутренних представлений
и компоновщик. потом уже конечно нужны будут утилиты типа make и т.д.
Взять уже готовый компилятор в исходниках и перекрутить его под minuet и FASM
(не факт что самый простой метод).
P.S. Просьба ко всем не равнодушным с реальным IP и не лимитированным доступом к инету, поставте SVN и видилите URL я у себя не могу т.к. в инет выхожу через прокси.
Чем же тебя не устраивает svn://kolibrios.org ? Нужен аккаунт - обращайся.
И кстати, хватит писать "Minuet". ОС называется "Menuet", а ОС, разрабатываемая тут - "Kolibri".
И кстати, хватит писать "Minuet". ОС называется "Menuet", а ОС, разрабатываемая тут - "Kolibri".
in code we trust
Who is online
Users browsing this forum: No registered users and 21 guests