Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Apr 24, 2019 9:22 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 25 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Tue Apr 03, 2007 4:10 pm 
Offline

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

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


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 5:16 pm 
Я знаю что тебе ответят ;)


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 8:15 pm 
Offline

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

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


Top
   
 Post subject:
PostPosted: Wed Apr 04, 2007 1:57 pm 
Offline

Joined: Thu Dec 21, 2006 10:51 am
Posts: 88
Serial wrote:
SHREDER, я не так уж давно на этом форуме, но суть усвоил четко :)
Да и по секрету скажу, что Menuet и Kolibri - это уже разные вещи..

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

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

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

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


Top
   
 Post subject:
PostPosted: Wed Apr 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 тем.


Top
   
 Post subject:
PostPosted: Wed Apr 04, 2007 2:57 pm 
Offline
Site Founder
User avatar

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

_________________
in code we trust


Last edited by Guest on Fri Apr 06, 2007 9:07 am, edited 1 time in total.

Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 10:37 am 
А кстати почему именно C++? Почему бы не сделать компилятор для языка D, например.
http://ru.wikibooks.org/wiki/%D0%AF%D0% ... B8%D1%8F_D


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 11:14 am 
Offline

Joined: Thu Dec 21, 2006 10:51 am
Posts: 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 и т.д можно будет потом легко портировать.


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 1:04 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
SHREDER

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


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 1:38 pm 
Offline

Joined: Thu Dec 21, 2006 10:51 am
Posts: 88
zhenya_k wrote:
А кстати почему именно 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. Лучше начинать не же начинать не с нуля!
Кто за ?

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


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 3:01 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
Я за :) (если это что то значит...)
Чем смогу помогу (в зависимости от свободного времени и настроения/желания)


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 4:57 pm 
Offline
User avatar

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

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


Top
   
 Post subject:
PostPosted: Thu Apr 05, 2007 5:28 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
И внёс свой веский вклад в пустую болтовню...


Top
   
 Post subject:
PostPosted: Fri Apr 06, 2007 1:49 pm 
Offline

Joined: Thu Dec 21, 2006 10:51 am
Posts: 88
andrew_programmer

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

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

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

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

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

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


Top
   
 Post subject:
PostPosted: Fri Apr 06, 2007 2:12 pm 
Offline
Site Founder
User avatar

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

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

_________________
in code we trust


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 25 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited