Ada_Ru форум

Обсуждение языка Ада

GUI Builder. Страница 2

Оставить новое сообщение

Сообщения

On Tue, 2 Aug 2005 15:07:48 +0300, Vladyslav Kozlovskyy <dbdeveloper@...> wrote:

Tuesday, August 2, 2005, 3:04:49 PM, you wrote:

Tuesday, August 2, 2005, 3:04:56 PM, you wrote:

Maxim Reznik wrote:

 

Сделать у описания интерфейса спецификацию/реализацию,

как у Ада модулей?

 

Ну ты, блин, даёшь!

 

Я до столь простого и логичного формального опредления так и не

додумался. ;)

 

 

Дык Ада ведь! Я тоже предполагал, что компилер будет типа gnatstub

только генерить будет не пустые описания, а реализацию для конкретной платформы.

Вот вам и ASIS пригодился как нельзя кастати. :)

 

Таким образом действительно можно создать нечто легкое и мощное одновременно.

 

Правда некто пару дней назад сильно возмущался вненшими

препроцессорами :) Глядь, и у этой идеи буде много противников.

 

Препроцессор, коверкающий сам исходник(вроде Цшного, где в самом языке

не хватило средств), и некий внешний модуль-генератор

(вроде того-же yacc) - две большие разницы ;)

 

В качестве примера правильного применения препроцессора, коверкающего

сам исходник могу привести пример того-же REDUCE (кому надо - пишите,

кину на мыло - меньше мега, под ДОС, полный пакет аналитической

математики) - там внутри все на лиспе, но на самом-же лиспе сперва

написан rlisp(это тот-же лисп, только без кучи скобок с синтаксисом

алгола), которые программу с человеческим алголовским синтаксисом

перед запуском перекручивает в лисп...

 

Думаю понятно, что при необходимости такой конвертор может содержать

любые правила проверок и контролировать все лучше любого компилятора,

в отличии от безмозглого текстового макропроцессора, вообще не знающего

языка.

 

Кстати довольно правильный подход к решению многих задач - это сперва

написание языка, на котором решение задачи упрощается в несколько раз.

Пример - тот-же yacc, хотя конечно сам язык могли бы придумать и получше :)

 

Vladimir

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

On Tue, 2 Aug 2005 14:41:44 +0300, Maxim Reznik <reznikmm@...> wrote:

On Tue, Aug 02, 2005 at 03:12:26PM +0400, Vadim Godunko wrote:

 

То, что закладывается в подобные библиотеки значительно разумнее

возложить на UI Builder. А если этот builder знает все тонкости

нижележащей архитектуры, то он в состоянии сгенерировать почти идеальный

код и вспомогательные файлы (ресурсы, локализации и др.)

 

В результате у программы можно достаточно спокойно поменять

"фронтмордие" просто перерисовав внешний вид. И не только фронтмордие,

но и вообще интерфейс, например, с Gtk на HTML.

 

 

Сделать у описания интерфейса спецификацию/реализацию,

как у Ада модулей?

 

Чтобы в спецификации перечислить все от чего зависит

код/логика программы, а реализацию сделать подставляемой,

зависимой от платформы, генерящейся билдером?

 

Типа вот вам диалог для ввода значений, на котором

будут поля ввода даты, категории товар и цены и

программе больше ничего знать не надо, как хотите

так их и рисуйте, где хотите там и распологаяте.

 

 

Сделать типа описание менюшек и морды в отдельном файле?

Тоесть допустим в каталоге с прогой отдельно валяется

файл данных вроде data.mnu или data.gui.

 

Потом допустим пользователь может сам запустить какой-нить

MenuEditor или GuiEditor и подкрутить внешний вид программы

как ему нравиться, но не трогая логики прораммы и кодов

полей данных...

 

Vladimir

PS Надо четко резобраться, что должно быть доступно для

переделки, а что нет. Думаю описания кодов полей должны

и меню, и программой импортироваться строго из одного

файла во избежания возможных расхождений и быть не доступны

для изменений, все остальное можно вообще сделать данными.

PPS Синтаксис и парсер можно тиснуть готовый из исходников

самого gnat, но думаю стоит подумать насчет каких-то спец

языков описание данных и тп, если это плохо реализуется

алгоритмическими средствами(языками)...

PPPS Некоторые любители по-быстрому колымить на написании

баз данных или сайтов хранят само меню в базе данных...

 

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

Новое сообщение:
< Страницы: 1 2

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти