Ada_Ru форум

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

Re: [ada_ru] Re: QtAda: какая нужна документация

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

Сообщения

Vadim Godunko
Re: [ada_ru] Re: QtAda: какая нужна документация
2007-04-03 08:09:53

Ivan Levashew wrote:

 

Было бы очень интересно узнать про устройство связки.

Связка относится к разряду "толстых". Она использует характерные для Ada правила именования пакетов, типов и объектов.

 

При передаче параметров используются эквивалентные типы данных. Например, в C++ все строки передаются как класс QString, в Ada используется эквивалент - тип Qt4.Strings.Q_String.

 

В тех редких случаях, где используется char*, Ada использует родные String.

 

Не меньший интерес представляет то, чем она делалась.

Конечный исходный частично является рукописным, а частично - сгенерированным. От практики обработки заголовком каким либо способом после первых результатов было решено отказаться. Вопервых, детальный и правильный анализ C++ кода (даже подмножества используемого Qt) задача не простая. Во вторых, и это самое главное, разница между фактическим API Qt и официальным описанным в документации составляет примерно 30%. Поэтому имеется репозиторий с описаниями классов, построенный вручную по результатам анализа заголовочных файлов и официальной документации. На основании этой информации и производится генерация кода.

 

Насколько я представляю, была задействована возможность

GNAT создавать наследников C++ классов, без специальной

прослойки, как в Qt#.

Нет. Иерархия классов полностью повторена на Ada. Связка является полностью переносимой между любыми компиляторами Ada2005.

 

Будут ли они Controlled?

Все типы, реализация которых использует динамическую работу с памятью являются Controlled.

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

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