OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 22:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 135 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 11 Июль, 2009 18:05 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
Info21 писал(а):
Почему все так озабочены Обероном-2? Который "имеет промежуточный характер".

Почему бы не ограничиться Обероном. А там видно будет.


Ну потому как только две реализации оберонов я видел, которые можно пощупать в так скать виртреале...
Это глагол и оберон от Pow! Остальные версии как то я то ли не видел, то ли плохо искал.

А почему (лично я) так обеспокоен этим, так только потому, что хочу перенести весь исходный код Оберона на паскаль и прикрутить к IDE, что бы получить типа Delphi RAD но с синтаксисом Оберон, а потом, когда оно уже будет [УДОБНО] компилировать, дебажить, искать ошибки, искать базовые объекты от детей и т.д. можно будет уже перерабатывать, дорабатывать и т.д. код самого Оберона, что то вроде улучшать, расширять, встраивать менеджеры уборки мусора и т.д. Но так как я практик (хотя ценю и уважаю... ээээ... но не всегда доверяю теории), то мне необходимо разобраться в коде, типа а правда, что оно работает так как надо?
А то я как то переписывал Модулу, а потом оказалось, что оно будет гукать токма под Windows, но это не беда была б если изначально оно не было построено на WinApi. На одном галимом WinApi.

Ну вот теперь и поэтому я и заморачиваюсь с Обероном, реально работающим....

К стати у гурьев си попытаюсь попросить совета и просю подсмотреть исходники самого POW, и если можно парой слов описать как там и где вызываются опции и компилирование из OBRN32.DLL его родного, ну и линкера если не трудно.

Хотя откуда тут сишникам взятся, они ж обычно трехтомные маны на хеловёрды пишут и по этому всегда заняты... :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Июль, 2009 18:15 

Зарегистрирован: Суббота, 07 Февраль, 2009 19:25
Сообщения: 8
sa_t_an писал(а):
2 sdimitry85
Вот и мне интересно сделать сперва консольную версию POW! из их исходника.

Правда пока ничо не получаеца!
Там есть функция Oberon2 - которой передается адрес в памяти, пока не понял какой


Код:
PROCEDURE [_APICALL] Oberon2* (p:LONGINT): INTEGER;
TYPE
  CP= POINTER TO CompParam;
VAR
  c: CP;
BEGIN
  c:=SYSTEM.VAL(CP,p);
  comp:=c^;

p - указатель на запись CompParam (описание имеется в начале файла) в которой передается имя модуля которое необходимо компилировать, адреса рабочих директорий, временных файлов, файла лицензии, опции компиляции, адреса процедур для работы с файлами, вывода сообщений об ошибках и т.д.
Цитата:
SYSTEM.VAL интересно что делает? В делфи копирует строковое представление числа в переменную.

адрес записи передается как тип 32-х разрядное число, а SYSTEM.VAL меняет его на тип указателя CP
Цитата:
Вот функция с которой получается консольное приложение, и в принципе в неё и надо вторкнуть вызов функций компилятора.

Код:
PROCEDURE [_APICALL] WinMain* (commandline:WD.LPSTR);
BEGIN
END WinMain;


Ну да ладно, буду копать дальше...

я вот тут подумал может ненадо переделывать на консольную программу, т.к. с параметрами передаются адреса процедур по работе с файлами, выводе ошибок и т.д.
т.е. они нужны что бы в IDE получить местоположение ошибки и в окошках выводить инфу об ошибках
если мы компилятор полность переделаем как консольный то лишимся возможности получать информуцию об ошибка и т.д.
с другой стороны можно не удалять функции dll тогда можно получить гибридную программу, если запускать как .exe то будит консольный компилятор командной строки, а если тот же самый файл как .dll то можно интегрироваться в IDE
хотя может вам консольный вариант нужен только для тестирования как передавать параметры и потом вы уберете консольные функции?
кстати ваш FreeIDE может быть позже перенесен на Lazarus и Linux ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Июль, 2009 18:28 

Зарегистрирован: Суббота, 07 Февраль, 2009 19:25
Сообщения: 8
sa_t_an писал(а):
Ну потому как только две реализации оберонов я видел, которые можно пощупать в так скать виртреале...
Это глагол и оберон от Pow! Остальные версии как то я то ли не видел, то ли плохо искал.

есть еще XDS Oberon-2/Modula-2, он с закрытыми исходными кодами, но имеет хорошо оптимизатор кода...
Цитата:
А почему (лично я) так обеспокоен этим, так только потому, что хочу перенести весь исходный код Оберона на паскаль и прикрутить к IDE, что бы получить типа Delphi RAD но с синтаксисом Оберон, а потом, когда оно уже будет [УДОБНО] компилировать, дебажить, искать ошибки, искать базовые объекты от детей и т.д.

у Pow в опциях можно указать что необходимо добавлять информацию для отладки, а потом с помощью скажем Visual Studio C++ 6 заниматься отладкой и смотреть в каких переменных какая информация хранится, я уже так делал, работает :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Июль, 2009 19:41 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
sa_t_an писал(а):
К стати у гурьев си попытаюсь попросить совета и просю подсмотреть исходники самого POW, и если можно парой слов описать как там и где вызываются опции и компилирование из OBRN32.DLL его родного, ну и линкера если не трудно.
Смотрите файл _oberon.c функцию CallCompiler
Код:
   /* execute compiler */
   ret=Oberon2((LPSTR)&comp);
   return ret;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Июль, 2009 20:27 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Alexey Veselovsky писал(а):
Быть может сразу Обероном-07? Он вроде ещё проще.
Да.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 01:08 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Info21 писал(а):
Alexey Veselovsky писал(а):
Быть может сразу Обероном-07? Он вроде ещё проще.
Да.

В Оберон-07 нету ООП! а для пользовательского интерфейса - это беда.
Предназначение Оберон-07 - микроконтроллеры.

Лучьше брать АктивОберон - самый изящный оберон (тем более многоплатформенный, в отличие от ЧЯ).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 02:35 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
ООП в голове а не в языке. По кр. мере в ООП стиле на обероне-07 вполне писать можно.

Но думаю народ тут выбирает язык не по преимуществам/недостаткам собственно языка, а по доступностью и наличию открытых реализаций компиляторов. А тут Оберон-2 таки в фаворе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 08:38 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
Дело вообще тут не в реализации языка... А именно в том, что бе эту реализацию прикрутить к чему то более вменябельно писательном и чутка покруче блокнота.

Ээээххх... Маленькое лирическое отступление о языках программирование.

Возмем С и С++. Итак, что мы имеем в них(по словам сишников)? Скорость разработки(спорно), величина конечного исходника(спорно), простоту(не верю, 800 стр описания как докозательство простоты не очень веский аргумент) и гибкость. Так вот о гибкости. Есть у меня два друга и у них маленькие дети примерно одного возраста. Так вот один очень внятно(даже для меня, не состоявшегося переводчика детского лепета) он произносит ПаПа,МаМа,ПиПи,НямНям...
А второй быстро но не внятно может прощебетать что то типа Мапи Паня ня ня пи а па... и мать каким то внутренним чуством и голосом переводит это как призыв к завтраку. Так вот, я всегда их сравнивал с Паскалем и С++, причем понимал, что если программу не очень то и надо документировать, а программу на С++ лучше не пожалеть коментариев, все таки разные люди будут понимать правильно, но до одного момента.
Однажды после невнятного бормотания мама второго быстренько сострапало что то вроде творога с сахаром, приборматывая - Сейчас будем ням-ням... -, начала кормить ребенка и... он описался.
У меня случилась истерика. Просто в мозгу пронеслось if(i++>--n){ i=i--; p=i==0?1:0; i=p; }, вообщем ситуация сложилась в сторону Паскаля, как к языку не слишком требовательному с переводом исходного кода.

Едим далее... D (Digital Mars) как пасынок С и С++, описание и возможности просто сказка, но то что вытворяют разработчики, не в какие рамки не лезет... Тысячи строк кода, сотни часов разработчиков библиотек на смарку, только из-за того, что писатели компилятора убирают одно, добавляют другое, поэтому смысла начинать даже его изучать, абсолютно никакого... Ну напишу я сейчас на нем, через 2 дня выйдет багтрекер, в компиляторе исправят баг и уберут что то, и вся моя работа коту под хвост.

Поэтому был выбран Оберон(ну... еще затем что бы показать конторке CodeGear что подобное можно написать и не многотысячной толпой сотрудников а практически любому программисту в одиночку) как надежность и читабельность(не даром на нем пишут для бороздения просторов космоса :D )

Теперь о деле. Да... Я думаю лучше на первых порах прикрутить просто dll и сделать обработку ошибок, а затем уже дорабатывать компилер прямо в среде и для среды.

Перенос среды на FreePascal возможен (я даже пробывал... правда код получился 8Мб) но в принципе для этого достаточно лишь написать (переписать) подсветку кода и сворачивание кода, остальные компоненты у меня полностью есть и при компиляции получается бинарник в 200кб, но интерфейс Delphi 7, а мне не очень нравится пицот окон в которых начинаеш со временем путаться, луче в одном и вкладочках...

И наконец. Ребят, не стесняйтесь, закидывайте суда пусть даже самый немыслимый код для проверки...
Кому нужны исходники IDE - в личку не стесняйтесь.
Кто имеет наработки по вызову компилятора из DLL - просто отлично, не жмите инфу, выкладывайте суда, вместе посмотрим обсудим.

А главное, начнем обсуждать и дописывать или переписывать, когда все эт хозяйство заработает.

2 sdimitry85
Там в IDE уже встроен ассемблер, который делает исполняемые файлы и куча примеров к нему.
С подсветкой и т.д...

ЗЫ...

Кстати а правда кто нить знает функцию вызова dll из например той же делфы?

Типа попробую сейчас заполнить структуру в делфе и передам указатель на неё в dll... Мож прокатит??? :D
Или из того же Оберона кто нить может накидать консольное приложение с вызовом dll???
Было бы здорово...


Вложения:
Комментарий к файлу: Пример
-2.jpg
-2.jpg [ 70.48 КБ | Просмотров: 9948 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 09:10 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
Немножко надо теперь расширить темку и поговорить о ДРАКОН и BB...

Итак ДРАКОН (конструктивная критика)...
Посмотрел, ничего не понял, ну да не в этом суть. Автору совет, использовать контейнерные классы для работы с
данными... Вообще у меня мозги работают быстрее чем руки... ы...ы.ы... Я могу повторить фотошоп, но мне не охото, в принципе кому интересно могу сбросить зачаток фотошопа на delphi...

BB - кому показывал (а испытания я провожу на пациентах не слишком тесно связанных с программированием) как альтернатива, всех более воткнул WinBinder почему то??? Так что разработчикам стоит подумать...

ЗЫ...

Транслятор Оберон-2 на макроасемблер никто не скачивал? А то я как то не успел...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 10:11 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
sa_t_an писал(а):
Кому нужны исходники IDE - в личку не стесняйтесь.
Кто имеет наработки по вызову компилятора из DLL - просто отлично, не жмите инфу, выкладывайте суда, вместе посмотрим обсудим.
А главное, начнем обсуждать и дописывать или переписывать, когда все эт хозяйство заработает.
Обсуждать лучше совместно. Здесь все свои.
sa_t_an писал(а):
Кстати а правда кто нить знает функцию вызова dll из например той же делфы?
А какие проблемы? Насколько мне известно она везде одинакова. Если вас КП не затрудняет, обратите внимание на исходники функций Kernel.LoadDll и Kernel.ThisDllObj. Первая DLL загружает, вторая использует.
sa_t_an писал(а):
Немножко надо теперь расширить темку и поговорить о ДРАКОН и BB...
Зачем расширять? Пишите непосредственно в соответствующий раздел форума.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 11:08 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
GUEST писал(а):
Обсуждать лучше совместно. Здесь все свои.

Дыг я не против, а про личку - это кому нужны исходники... Все таки они немножко ешо сыроваты для паблика...

Вызов DLL у меня затруднений не вызывает... У меня вызывает затруднения вызов DLL из POW!
А именно какие параметры и структуры я должен заполнить и в какую функцию передать в obrn32.dll что бы оно мне вернула или код ошибки+ строку+позицию или *.sym и *.obj файл... Но в принципе эти посты для заинтересованого народа в создании ОТКРЫТОЙ для доработки системы на основе ОБЕРОН-2(3..4..5..).

Почему Delphi нужно для этого? Да потому как народу поболше чем Обероновцев, которые могут дорабатывать и улучшать... Я ж говорю, как токма заработает все это хозяйство с dll, так моментально начну зашивать компилятор в IDE...

А насчет БлэкБокса, Аоса и т.д. я как то ставил их,ну вот не нравятся мне инвалидки и все тут...
Не люблю я наматывать километры кода колесом мыши, мне легче выделить код, нажмать Ctrl+F5 и получить компактное представление... И всякие разговоры про то как удачно все это вписывается в пейзаж, просто пустой звон... Вы же любите фильмы смотреть эффектные и со смыслом, я тоже, так почему бы не облагородить свою же работу и (извините за грубое сравнение) задницу подтирать не газетой, а туалетной бумагой???

Ну а на форуме все это происходит, потому как мне легче спросить, заинтересовать, да и просто пообщаца (а нафиг токда оне - форумы и нужны ешо? Древних грецких трогать не будем... :D ), и из этого общения извлеч или совет или направление, а что луче - код реально работающий, что бы можно было за что уцепиться глазом, потому как руками как вы понимаете можно токма за колесо мыши схватица, а мои усиленные тренировки с колесиком нравятся только жене (да и то в несколько другой обстановке :wink: )

А про ДРАКОН - это так... для поднятия боегого тонусу :)


Вложения:
-2.jpg
-2.jpg [ 175.32 КБ | Просмотров: 9941 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 11:47 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
sa_t_an писал(а):
А про ДРАКОН - это так... для поднятия боегого тонусу :)
Я не шучу и вам не советую.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 12:09 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
ХМ... А то вы пульнете по мне Тополем-2.
Вообще если бы вы знали что я думаю о таких разработках, то у вас сразу бы приключился приступ истерии и нервный срыв...
А вообще мы отошли от темы...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 12:14 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
sa_t_an писал(а):
Не люблю я наматывать километры кода колесом мыши, мне легче выделить код, нажмать Ctrl+F5 и получить компактное представление...
Вместо всей этой лирики -- проще спецкоманду сделать.
Или хотя бы спросить как. На другие вопросы (и даже более) хватает сил.

Хотя, конечно, это, видимо, опять из разряда "раскраска синтаксиса"...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 12:30 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
sa_t_an писал(а):
Вызов DLL у меня затруднений не вызывает... У меня вызывает затруднения вызов DLL из POW!
А именно какие параметры и структуры я должен заполнить и в какую функцию передать в obrn32.dll что бы оно мне вернула или код ошибки+ строку+позицию или *.sym и *.obj файл...
В POW! функция err передаваемая как параметр функции CallCompiler получает от компилятора все ошибки, если они есть. Указанный мной файл смотрели?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 12:49 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
Да смотрел... Спасибо.
Ну что ж , попробую сейчас такое сотворить в Delphi.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Июль, 2009 21:50 

Зарегистрирован: Суббота, 04 Июль, 2009 19:22
Сообщения: 45
Вопрос, а как сделать аналог SET в PASCAL?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Июль, 2009 23:05 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 575
Откуда: Россия, Санкт-Петербург
sa_t_an писал(а):
Вопрос, а как сделать аналог SET в PASCAL?


Нет ничего проще:
Код:
TYPE
    SET = LONGINT;

VAR
    set : SET;

    PROCEDURE INCL (VAR set : SET; CONST bit : INTEGER);
    VAR
        i : LONGINT;
    BEGIN
        i := 1 SHL bit;
        set := set OR i;
    END;

    PROCEDURE EXCL (VAR set : SET; CONST bit : INTEGER);
    VAR
        i : LONGINT;
    BEGIN
        i := NOT (1 SHL bit);
        set := set AND i;
    END;

BEGIN
    set := 0;
    INCL (set, 3);
    INCL (set, 12);
    EXCL (set, 3);
    WriteLn (set);
END.

Гораздо сложнее сделать чтобы работало:
Код:
    set := {0, 1, 3..8, 15};

как это сделать - пока не придумал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Июль, 2009 00:57 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Madzi писал(а):
как это сделать - пока не придумал.
Код:
    PROCEDURE Assign (VAR set : SET; CONST value : string);
    BEGIN
        { нет времени сейчас писать, но идея ясна }
    END;

BEGIN
    Assign (set, '0, 1, 3..8, 15');
    Writeln (set);
END.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Июль, 2009 01:01 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Вариант без поддержки диапазонов типа "3..8":
Код:
    PROCEDURE Assign (VAR set : SET; CONST value : ARRAY OF BYTE);
    VAR
        i: INTEGER;
    BEGIN
        FOR i := 0 TO Length (value) - 1 DO
            INCL (set, value [i]);
    END;

BEGIN
    Assign (set, [0, 1, 3, 4, 5, 6, 7, 8, 15]);
    Writeln (set);
END.


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB