Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн окт 23, 2017 5:34 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 25 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Компилятор с C++ для Minuet
СообщениеДобавлено: Вт апр 03, 2007 4:10 pm 
Не в сети

Зарегистрирован: Чт дек 21, 2006 10:51 am
Сообщения: 88
Короче, пробывал я тут переписать все ядро Minuet в С++. Даже беглый обзор лиснигов говорит о том что это задача трудно разрешаемая вернее откровенно будем говорить вообще не разрешима. Основная причина - компилятор, ни GCC ни лбой другой из мне известных такие фокусы как перевод процессора в защищенный режим после того как часть программы уже отработало не разрешает. Ну хотя наверно возможно но слишком уж мудрено ыйдет.
Тогда я решил испробовать написать хоть несколько программ на С++ для Minuet, воспользовался статьями котрыйе месные юзеры в изобилии запостили. Большинство подходов кроме GCC, основываются на получении от компилятора ассемблерного кода, преобразования его в FASM и ассемблирования полученого.
Не мне вам говорить что приятного в таком способе мало, особенно в отладке.
Потому думаю что надо написать компилятор с С++ для колибри, тут пока все кричат ( и даже делают) про паскаль, яву переделывают убогие полуучебные С компилеры для С, юзают диалекты вроде С--. При этом самый распространенный на сегодня язык (в том числе и для системного программирования) отается как бы за кадром. Посему предлагаю создать компилятор С++ для minuet причем способный компилировать и сам себя, интегрированый с FASM, с утилитой make вроде ANT и полноценной IDE на подобие скажем CBuilder или Eclipse IDE.

_________________
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 03, 2007 5:16 pm 
Я знаю что тебе ответят ;)


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 03, 2007 8:15 pm 
Не в сети

Зарегистрирован: Чт янв 25, 2007 4:45 pm
Сообщения: 135
SHREDER, я не так уж давно на этом форуме, но суть усвоил четко :)
Идей хороших и плохих много, а вот программистов очень мало.. а так как проект open source (бесплатный), то каждый делает то, что ему интересно, что ему нравится, чем ему хочется заниматься.
Тебе хочется c++ компилятор? ..пожалуйста, пиши :)

Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 04, 2007 1:57 pm 
Не в сети

Зарегистрирован: Чт дек 21, 2006 10:51 am
Сообщения: 88
Serial писал(а):
SHREDER, я не так уж давно на этом форуме, но суть усвоил четко :)
Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..

Ну ты посмотри исходный код, по сути все основное из Minuet.

Я бы с удовольствием сам написал компилятор сам года этак за полтора, если бы временем располагал. Но с моей нынешней работой и уходить -темно и приходить - темно.
Посему поставить бы где нить SVN и начать потихоньку. Можно првда поробывать уболтать руководство моей компании на девелоп компилера, но на опен сурс они никогда не согласятся.

У кого какие идеи есть по компилеру постите, а не флеймерите типа нах нужен С++ и т.д. То что он нужен это очевидный факт.

_________________
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 04, 2007 2:07 pm 
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 тем.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 04, 2007 2:57 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Хочешь компилятор Си++ - помоги портировать тот, что уже доказал свою эффективность и работоспособность. Давно пора понять, что 3 одинаковых проекта всё равно когда-нибудь станут одним целым, там почему не слиться сразу, не подумать наперёд.

_________________
in code we trust


Последний раз редактировалось Гость Пт апр 06, 2007 9:07 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 10:37 am 
А кстати почему именно C++? Почему бы не сделать компилятор для языка D, например.
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 11:14 am 
Не в сети

Зарегистрирован: Чт дек 21, 2006 10:51 am
Сообщения: 88
Короче говоря дело в следующем. На самом деле компиляторов с С++ не такое уже и великое множиство, сегодня
обще известные 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 и т.д можно будет потом легко портировать.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 1:04 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
SHREDER

Watcom поддерживает шаблоны. Для него написали много нового. Конечно качаство кода уступает MSVC, но за коммерческими угнаться сложно. А вот скорость компиляции очень хорошая. Дум компилируется и линкуется за 10-15 секунд


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 1:38 pm 
Не в сети

Зарегистрирован: Чт дек 21, 2006 10:51 am
Сообщения: 88
zhenya_k писал(а):
А кстати почему именно C++? Почему бы не сделать компилятор для языка D, например.
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D

Потому что это самый распространенный язык программирования. Конечно D может быть чем то и лучше, но кто на нем программирует?
Есть ли к нему такое же колличество тулзов и библиотек?
Сколько полезных программ и технологий, которые можно портировать в Minuet, доступны в исходника D?

Конечно С++ очень сложный язык как для изученя так и для реализации. К тому же содержит устаревшие описания из С. Стандарт языка ISO/IEC 14882 стремительно стремится к 1000 странриц. Тем не мение без С++ сегодня никак причем практически во всех областях программирования.

2 По поводу ваткома хорошая идея бы была портировать его под Minuet и интегрировать с FASM. А сами исходные коды модернизировать для полной поддержки стандарта ISO/IEC 14882 и лучшей производительности. Code::Blocks умеет с ним работать, остается только лиш перекомпилить ее исходные коды готовым компилятором и получить готовую версию для Minuet. Лучше начинать не же начинать не с нуля!
Кто за ?

_________________
Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 3:01 pm 
Не в сети

Зарегистрирован: Пн май 01, 2006 10:12 pm
Сообщения: 349
Я за :) (если это что то значит...)
Чем смогу помогу (в зависимости от свободного времени и настроения/желания)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 4:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Тема с компиляторами языков высокого уровня поднималась много раз..........
А чем закончилось ?
А всё тем же - пустой болтовнёй.Делать как обычно некому.
Уж сколько раз говорили, что написать libC надо для полного портирования компилятора в Колибри.Некоторые говорили, что это не сложно.
Однако при этом ничего не писали,а просто созерцали, когда кто -нибудь другой займётся этим.

SHREDER., ты разбираешься в теории компиляторов ?
Ты когда- нибудь пробовал написать хоть простенький компилятор ?
Если нет, то ни о каком написании компилятора и речи быть не может.Будет только пустая болтовня.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 05, 2007 5:28 pm 
Не в сети

Зарегистрирован: Пн май 01, 2006 10:12 pm
Сообщения: 349
И внёс свой веский вклад в пустую болтовню...


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 06, 2007 1:49 pm 
Не в сети

Зарегистрирован: Чт дек 21, 2006 10:51 am
Сообщения: 88
andrew_programmer

....ать еслиб не разбирался то тему не поднимал бы.

Я вот просто думаю как лучше:

Начить все писать с нуля написав нечто с рекурсивным спуском.

Сгенерировать YACC или FLEX лексический и синтаксический анализаторы
получить C код, после чего написть генератор внутренних представлений
и компоновщик. потом уже конечно нужны будут утилиты типа make и т.д.

Взять уже готовый компилятор в исходниках и перекрутить его под minuet и FASM
(не факт что самый простой метод).

P.S. Просьба ко всем не равнодушным с реальным IP и не лимитированным доступом к инету, поставте SVN и видилите URL я у себя не могу т.к. в инет выхожу через прокси.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 06, 2007 2:12 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Чем же тебя не устраивает svn://kolibrios.org ? Нужен аккаунт - обращайся.

И кстати, хватит писать "Minuet". ОС называется "Menuet", а ОС, разрабатываемая тут - "Kolibri".

_________________
in code we trust


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 25 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB