OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 06 Декабрь, 2019 18:02

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




Начать новую тему Ответить на тему  [ Сообщений: 297 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 02 Февраль, 2009 02:45 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Димыч писал(а):
и поверх (следующей ревизией) свою.


Uninstall лучше убрать, в таком виде он небезопасен - выносит все хуки, даже если и чужие


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 10:25 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Коллеги, впал в ступор, никак не могу разобраться.

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

Да, разбор xml-файла уже сделан.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 10:36 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Приложите образец xml, пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 11:07 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Димыч писал(а):
Например, объекты одного уровня могут иметь в методах переменные со ссылочным типом, указывающим на соседей по иерархии (по одному уровню).
Переменные в методах (возможно, Вы имели ввиду параметры)... Если я правильно понял, проблемы просто нет. Т. к. сначала в модуле объявляются все типы, а потом определяются методы.
Language Report писал(а):
Module = MODULE ident ";" [ImportList] DeclSeq
[BEGIN StatementSeq]
[CLOSE StatementSeq] END ident ".".
ImportList = IMPORT [ident ":="] ident {"," [ident ":="] ident} ";".
DeclSeq = { CONST {ConstDecl ";" } | TYPE {TypeDecl ";"} |
VAR {VarDecl ";"}} {ProcDecl ";" | ForwardDecl ";"}.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 11:16 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Пётр Кушнир писал(а):
Приложите образец xml, пожалуйста.

sharp.zip
Любой из вложенных


Вложения:
sharp.zip [197.86 КБ]
Скачиваний: 154


Последний раз редактировалось Димыч Среда, 25 Февраль, 2009 11:23, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 11:22 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Евгений Темиргалеев писал(а):
Димыч писал(а):
Например, объекты одного уровня могут иметь в методах переменные со ссылочным типом, указывающим на соседей по иерархии (по одному уровню).
Переменные в методах (возможно, Вы имели ввиду параметры)... Если я правильно понял, проблемы просто нет. Т. к. сначала в модуле объявляются все типы, а потом определяются методы.

Все верно.
Проблема в другом.
GTK написано на C, но лучше бы ее писали на паскале или Обероне :)
Наследование сделано включением полей предка (некоторые подробности), а методы сделаны простым включением указателей на процедуры:
Код:
Object = RECORD
  method: PROCEDURE (arg: type; arg1: type1;...);
  ...
END;


т.е. получается, что непосредственно в коде объявления используется ссылка на какой-то другой объект. Соответственно, чтобы это компилировалось, надо, чтобы объекты шли в порядке использования, а не только согласно отчета о языке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 11:33 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Компилируется
Код:
   TYPE
      A = RECORD
         x: PROCEDURE (b: POINTER TO B)
      END;
      
      B = RECORD
         x: PROCEDURE (a: POINTER TO A)
      END;
Типы объявляются заранее (до генерации кода в процедурах, которые их используют) и разбор таких конструкций проблемы не составляет.

Подходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 25 Февраль, 2009 17:30 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Ндаа, глянул я эти "формальные описания интерфейсов" GTK. Уважаемый Димыч, а оно действительно нужно? Ну, написание псевдокомпилятора XML -> КП, потом мучительная отладка написаного с оглядкой на то, как оно в Си, и всё такое. Нет, я конечно, не против, но по мне, лучше перенаправить усилия в сторону полного переноса Host-части на "иксы", и замены "системных контролов" в их сегодняшнем виде(CFrames) на аутентичные ББ-шные отображения. На данный момент мне задачи кажутся, как минимимум, одного порядка сложности.

дискляймер: я тут пока только советую, просто совсем времени нет, извините, если что :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Четверг, 26 Февраль, 2009 11:08 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Пётр Кушнир писал(а):
Уважаемый Димыч, а оно действительно нужно?

На мой взгляд нужно.
Я не раз уже отстаивал позицию "программа должна быть похожей на окружение, но выгодно отличаться по структуре".

Повторю еще раз.

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

Возьмите любой дистрибутив Linux, в качестве основного интерфейса у них или KDE, или GNOME. Есть еще масса других оконных менеджеров, но для использования десктоп-дистрибутивов нужно выбрать или то, или другое (особенно, если вы вообще ничего не знаете о наличии оконных менеджеров). KDE (Qt) не могу использовать по идейным соображениям (написан на C++).
Motif же, тем паче голый (голая?) X Window System имеет весьма ограниченное применение на desktop-системах. Остается GTK.
Пётр Кушнир писал(а):
лучше перенаправить усилия в сторону полного переноса Host-части на "иксы", и замены "системных контролов" в их сегодняшнем виде(CFrames) на аутентичные ББ-шные отображения.


Я исследовал этот вопрос. Пока я не наткнулся на GAPI, я на полном серьезе хотел использовать для ББ OpenMotif. Трудозатраты по переводу и отладке - сопоставимые. Однако, за перевод заголовков GTK я не мог особо поручиться, там было не до хорошего. Перевод интерфейса для Modula-2 был полуручной (много было обработки с помощью sed, grep, awk и Far). С GAPI появилась возможность осуществить полуавтоматический перевод (с уклоном в автоматический) с C на Компонентный паскаль и Оберон-2 (XDS).

Для Motif пришлось бы делать полностью ручной перевод, но там система проще, чем GTK, и структура у нее практически одноуровневая, т.е. все виджеты в ней самостоятельные структуры, независимые особо друг от друга. Кроме того, система развивающаяся, и при выходе новой версии надо будет все начинать с начала.

Gtk# же (а именно оттуда взяты GAPI-файлы) является официально поддерживаемой языковой привязкой (language binding), создается внутри команды GNOME, практически идет версия в версию с Gtk, так что можно не сомневаться по поводу ее актуальности.

С точки зрения отладки при работе с GTK у меня уже есть некоторый опыт, я работал с этой библиотекой. С Motif мои знания только теоретические. Плюс есть некоторый опыт работы с системами, написанными на Motif.

Наконец, есть и личный мотив (чуть не написал "мотиф" :))

Много лет я искал систему программирования, в рамках которой соблюдалось бы несколько условий:

  • настоящая кроссплатформенность среды разработки и результатов ее работы;
  • хорошая (красивая и быстрая) графика со сглаживанием;
  • возможность использовать опыт работы с pascal-веткой языков.

Были большие надежды на Delphi/Kylix, но язык Delphi испортили путем включения в .Net среду, Kylix закрыли.

Я направил свой взор в сторону FreePascal. Но там было ощущение поделки студентов.

От языков C-направления меня слегка подбрасывает (есть несколько законченных программ на C/C++, но такая работа для меня всегда стресс).

Узнал про Оберон, переборол себя (в плане изучения) и теперь у меня появилась возможность самому реализовать то, что нужно, да еще и так как мне нужно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Четверг, 26 Февраль, 2009 16:07 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Евгений Темиргалеев писал(а):
Компилируется
Код:
   TYPE
      A = RECORD
         x: PROCEDURE (b: POINTER TO B)
      END;
      
      B = RECORD
         x: PROCEDURE (a: POINTER TO A)
      END;
Типы объявляются заранее (до генерации кода в процедурах, которые их используют) и разбор таких конструкций проблемы не составляет.

Подходит?

Да, спасибо, похоже это самое то.
Причем, я попробовал компилируется даже такой код:
Код:
TYPE
  A = RECORD
    x: PROCEDURE (b: B)
  END;

  B = RECORD
    x: PROCEDURE (a: A)
  END;

Правда, только в ББ, в XDS уже не компилируется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Четверг, 26 Февраль, 2009 18:35 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Димыч писал(а):
Кроме того, система развивающаяся, и при выходе новой версии надо будет все начинать с начала.
Это вряд ли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 11 Март, 2009 23:44 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Коллеги, будьте добры, подскажите, где можно почитать про формат символьных файлов XDS или BB?
Требуется прочитать файл, чтобы получить из него список всех имеющихся идентификаторов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Четверг, 12 Март, 2009 00:01 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Не припомню, чтобы где то было описание формата.
Пример разбора символьного файла вот здесь: DevBrowser, а ещё, если модуль загружен - можно через Meta все доступные идентификаторы получить, я как-то делал такое. Но это только для нормальных работающих модулей работает.

UPD: А ведь вспомнил, есть что-то похожее на описание формата в файле Dev/Spec/SymFile


Вложения:
SymFile.odc [3.84 КБ]
Скачиваний: 368
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Четверг, 12 Март, 2009 04:45 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Димыч писал(а):
Коллеги, будьте добры, подскажите, где можно почитать про формат символьных файлов XDS или BB?
Требуется прочитать файл, чтобы получить из него список всех имеющихся идентификаторов.

За всеми в исходный текст только.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 24 Март, 2009 22:24 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 24 Март, 2009 22:52 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9161
Откуда: Россия, Орёл
Используйте для инструментального графического ББ Wine, да и всё...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 25 Март, 2009 02:11 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Илья Ермаков писал(а):
Используйте для инструментального графического ББ Wine, да и всё...

Ну, во-первых ради одной программы ставить здоровущщий вайн не хочется, а во-вторых:
Цитата:
Раскрутка, "самоиндукция" позволяет обеспечить наиболее естественное постепенное развитие создаваемой системы. Фактически, запускаем и поддерживаем некий процесс эволюции. Очень хорошо расставляются приоритеты относительно того, что важно, а что избыточно (вообще или на текущем витке). Система с "первого своего вздоха" проверяется в реальном применении (для создания самой себя).

Думаю что разработка BB for linux из под самого себя может привести к существенно более качественному результату.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 25 Март, 2009 04:44 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Alexey Veselovsky писал(а):
Каково текущее состояние порта? Дошло ли оно до состояния, когда возможно развитие его самораскруткой? На домашнем ноуте у меня вин нету, поэтому таковая возможность весьма интересует...
ради одной программы ставить здоровущщий вайн не хочется,
Можно использовать раскрутку из консольной версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 25 Март, 2009 11:12 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Alexey Veselovsky писал(а):
Каково текущее состояние порта? Дошло ли оно до состояния, когда возможно развитие его самораскруткой? На домашнем ноуте у меня вин нету, поэтому таковая возможность весьма интересует.

Вы несколько опередили события :)
Планировал написать чуть позже, когда будет готов language binding (вопрос литературный - как это перевести?)
Практически закончил перевод модуля Gtk, остальные (atk, pango, gdkpixbuf, gdk) переведены.
Как только закончу - опубликую и исходники генератора, и, собственно, модули.
Следующим шагом будет как раз создание раскрутки, т.е. возможности собирать компилятор из себя самого. Делать это планирую через подсистему CDev из OpenBUGS.
Ну а дальше - собственно создание ГУИ.

Я связался с Оминк, они выслали мне свой вариант перевода ББ на Линукс.
Разрешения на публикацию я не просил, поэтому (пока) показать не могу.
Они сразу предупредили, что original BB license apply :)
И еще, сказали, что их код далек от совершенства. Я сильно еще не вдавался, но, как минимум, их код устарел по отношению к GTK.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 25 Март, 2009 11:14 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
С точки зрения ГУИ нарисовалась проблема - в GTK нет (штатной) возможности создать MDI приложение. Или я плохо искал.

Но как это сделать, я не знаю.
Так что придется делать интерфейс с закладками (как в gedit).


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

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


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

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


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

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