Ada_Ru форум

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

ASIS Viewer (gtk)

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

Сообщения

Maxim Reznik
ASIS Viewer (gtk)
2007-09-16 16:59:44

Hi all

 

Хочу предложить свою самописную программку asis_view_gtk.

 

Она позволяет просматривать дерево элементов любой

Ада-программы, в том порядке как их обходит Asis.Iterator.

Для каждого элемента выводится значение большенства его свойств,

доступных через ASIS. Сам элемент выделяется в тексте

компилируемого модуля, для большей наглядности.

Если значение свойства есть само Asis.Element, то легко

можно перейти к нему.

 

Все это делается мышкой, в интуитивно (надеюсь) понятном

интерфейсе. Скриншот:

http://www.ada-ru.org/files/asis_view_gtk.jpg

 

Мне кажется, данная программа особенно полезна изучающим

ASIS, т.к. позволяет наглядно обозревать иерархии Ада

конструкций, типы элементов ASIS и большенство их свойств,

содержимое ASIS-контекста.

 

Исходные тексты тут

http://www.ada-ru.org/files/asis_view_gtk-0.5.zip

Странички у проекта пока нет. Для компиляции нужен

Asis и GtkAda. Лицензия GPLv2 и выше.

Рутинные исходные тексты сгенерированы по xml описанию

ASIS из проекта Gela http://www.ten15.org/Ada

 

Интересны ваши комментарии

 

--

Maxim Reznik

Maxim Reznik wrote:

 

Интересны ваши комментарии

С ходу - пара вопросов:

 

1. Сколько затрачено на разработку?

 

2. Зачем оно надо?

 

Второй вопрос возник как реакция на

 

Мне кажется, данная программа особенно полезна изучающим

ASIS, т.к. позволяет наглядно обозревать иерархии Ада

конструкций, типы элементов ASIS и большенство их свойств,

содержимое ASIS-контекста.

 

Если хотите, могу его детализировать:

 

- как много изучающих ASIS ожидается (в штуках)?

 

- неужели изучающих ASIS не устраивают возможности asistant'a?

(там не графический интерфейс, но куда больше возможностей

в режиме browse)

 

- неужели изучающих ASIS не устраивают возможности asistant'a?

(там не графический интерфейс, но куда больше возможностей

в режиме browse)

 

Судя то тому, что у меня есть собственная программка подобного толку, оно таки имеет практическую пользу ;-)

 

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

Vadim Godunko wrote:

 

Судя то тому, что у меня есть собственная программка подобного толку, оно таки имеет практическую пользу ;-)

 

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

Не берусь спорить, ибо сам начинающим был сильно давно.

On Sun, Sep 16, 2007 at 09:20:27PM +0400, Sergey I. Rybin wrote:

С ходу - пара вопросов:

 

1. Сколько затрачено на разработку?

 

Пять дней, примерно. Писалось правда хорошо :)

2. Зачем оно надо?

 

Ну это как asistant только графический. Чтоб лениво тыкать

мышкой, а не стучать длинные команды, постоянно ошибаясь :)

И цели аналогичные, полазить по ASIS-у, посмотреть что оно

такое, как сделаны те или иные конструкции.

 

 

Второй вопрос возник как реакция на

 

Мне кажется, данная программа особенно полезна изучающим

ASIS, т.к. позволяет наглядно обозревать иерархии Ада

конструкций, типы элементов ASIS и большенство их свойств,

содержимое ASIS-контекста.

 

Если хотите, могу его детализировать:

 

- как много изучающих ASIS ожидается (в штуках)?

 

Да сколько бы не было. ASIS - яркая особенность языка Ада.

Чем легче его освоить, тем большее кол-во заинтересовавшихся

дойдут до финиша: начнут практически его использовать.

 

 

- неужели изучающих ASIS не устраивают возможности asistant'a?

(там не графический интерфейс, но куда больше возможностей

в режиме browse)

 

К стыду своему не знаю что за режим browse есть у asistant-а :(

 

Эта программка лучше asistant-а (в том виде, в каком я его последний раз юзал) тем, что обучающемуся не нужно знать имена свойств

чтобы их увидеть. Достаточно тыкнуть на элемент и посмотреть

из чего он состоит и какие свойства имеет. В то время, как

в asistant-е ты должен 1) знать, что существует своейство, скажем, Names, 2) что это свойство доступно у элемента Declaration, 3)

что твой элемент и есть этот самый Declaration, только зная

все это можно ввести

print (Names(Item))

и не получить ошибку в ответ. Т.е. обучающийся уже должен

много знать об ASIS. А в этой программке пробовать можно с

познаниями близкими к нулю. Сел, открыл контекст, увидел список

модулей, выбрал модуль, посмотрел дерево элементов, обозрел

их разнообразие и доступные свойства. Бессмысленно побродил

по дереву элементов :)

 

Сам я, правда, никого не обучал ASIS-у. И это все мои домыслы :)

Но думаю лишня обучалка не помешает. Хотелось бы только

чтоб о ней знали.

 

 

 

--

Maxim Reznik

Maxim Reznik wrote:

 

Пять дней, примерно. Писалось правда хорошо :)

 

Лихо! :)

 

Да сколько бы не было. ASIS - яркая особенность языка Ада.

Чем легче его освоить, тем большее кол-во заинтересовавшихся

дойдут до финиша: начнут практически его использовать.

 

Все так, да вот что-то желающих даже просто поинтересоваться

не видно :(((

 

К стыду своему не знаю что за режим browse есть у asistant-а :(

 

Дык, набираете browse в командной строке asistant-а - и вперед!

 

Эта программка лучше asistant-а (в том виде, в каком я его последний

раз юзал) тем, что обучающемуся не нужно знать имена свойств

чтобы их увидеть. Достаточно тыкнуть на элемент и посмотреть

из чего он состоит и какие свойства имеет. В то время, как

в asistant-е ты должен 1) знать, что существует своейство, скажем,

Names, 2) что это свойство доступно у элемента Declaration, 3)

что твой элемент и есть этот самый Declaration, только зная

все это можно ввести

print (Names(Item))

и не получить ошибку в ответ. Т.е. обучающийся уже должен

много знать об ASIS. А в этой программке пробовать можно с

познаниями близкими к нулю. Сел, открыл контекст, увидел список

модулей, выбрал модуль, посмотрел дерево элементов, обозрел

их разнообразие и доступные свойства. Бессмысленно побродил

по дереву элементов :)

 

Надо будет найти время и попробовать. Идея графического asistant-a

у меня у самого давно бродит. Своих ресурсов нет, студенты не

потянули (причем с большим таким запасом не потянули :((( )

 

Сам я, правда, никого не обучал ASIS-у. И это все мои домыслы :)

Но думаю лишня обучалка не помешает. Хотелось бы только

чтоб о ней знали.

 

Это правильно! И какие мысли по поводу "чтоб о ней знали"? Вы в

адакорской GAP-программе участвуете? Если да - так можно туда

отправить.

Monday, 17. September 2007, Sergey I. Rybin Ви написали:

Сам я, правда, никого не обучал ASIS-у. И это все мои домыслы :) Но думаю лишня обучалка не помешает. Хотелось бы только

чтоб о ней знали.

 

Это правильно! И какие мысли по поводу "чтоб о ней знали"? Вы в

адакорской GAP-программе участвуете? Если да - так можно туда

отправить.

Или например выложить где то исходники (или даже просто дать мне, я их устрою вместе с останьлыми Ada-related у себя), чтоб я мог это добавить в portage ;).

 

George

--- In ada_ru@yahoogroups.com, George Shapovalov <george@...> wrote:

 

Monday, 17. September 2007, Sergey I. Rybin ÷É ÎÁÐÉÓÁÌÉ:

óÁÍ Ñ, ÐÒÁ×ÄÁ, ÎÉËÏÇÏ ÎÅ ÏÂÕÞÁÌ ASIS-Õ. é ÜÔÏ ×ÓÅ ÍÏÉ ÄÏÍÙÓÌÙ :) îÏ ÄÕÍÁÀ ÌÉÛÎÑ ÏÂÕÞÁÌËÁ ÎÅ ÐÏÍÅÛÁÅÔ. èÏÔÅÌÏÓØ ÂÙ ÔÏÌØËÏ

ÞÔÏÂ Ï ÎÅÊ ÚÎÁÌÉ.

 

üÔÏ ÐÒÁ×ÉÌØÎÏ! é ËÁËÉÅ ÍÙÓÌÉ ÐÏ ÐÏ×ÏÄÕ "ÞÔÏÂ Ï ÎÅÊ ÚÎÁÌÉ"? ÷Ù ×

ÁÄÁËÏÒÓËÏÊ GAP-ÐÒÏÇÒÁÍÍÅ ÕÞÁÓÔ×ÕÅÔÅ? åÓÌÉ ÄÁ - ÔÁË ÍÏÖÎÏ ÔÕÄÁ

ÏÔÐÒÁ×ÉÔØ.

éÌÉ ÎÁÐÒÉÍÅÒ ×ÙÌÏÖÉÔØ ÇÄÅ ÔÏ ÉÓÈÏÄÎÉËÉ (ÉÌÉ ÄÁÖÅ ÐÒÏÓÔÏ ÄÁÔØ ÍÎÅ, Ñ

ÉÈ ÕÓÔÒÏÀ

×ÍÅÓÔÅ Ó ÏÓÔÁÎØÌÙÍÉ Ada-related Õ ÓÅÂÑ), ÞÔÏÂ Ñ ÍÏÇ ÜÔÏ ÄÏÂÁ×ÉÔØ × portage ;).

 

George

 

 

ëÏÌÌÅÇÉ

íÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ÜÔÁ ÐÒÏÇÒÁÍÍÁ (ÎÁÓËÏÌØËÏ ÍÏÖÎÏ Õ×ÉÄÅÔØ ÐÏ ÓËÒÉÎÛÏÔÕ) ÐÏÔÅÎÃÉÁÌØÎÏ ÇÏÒÁÚÄÏ ÐÏÌÅÚÎÅÅ, ÞÅÍ ÏÎÁ ÐÏÚÉÃÉÏÎÉÒÕÅÔÓÑ ËÏÌÌÅÇÏÊ

òÙÂÉÎÙÍ,

ÄÁ É ÓÁÍÉÍ Á×ÔÏÒÏÍ.

äÁ, ÓÅÊÞÁÓ ÜÔÏ ÐÒÏÓÔÏÊ ×ÉÚÕÁÌÉÚÁÔÏÒ ASIS-ÐÒÅÄÓÔÁ×ÌÅÎÉÑ.

îÏ, ÐÒÏÓÔÉÔÅ, ÎÁÄÏ ÈÏÒÏÛÏ ÐÏÎÉÍÁÔØ, ÞÔÏ ÉÍÅÎÎÏ ÔÁËÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ, ËÁË × ÜÔÏÊ ÐÒÏÇÒÁÍÍÅ, É ÓÏÓÔÁ×ÌÑÅÔ ÑÄÒÏ "ÎÁÓÔÏÑÝÉÈ" ÓÉÓÔÅÍ, ËÏÔÏÒÙÅ ×ÙÐÏÌÎÑÀÔ ÒÁÚÌÉÞÎÙÅ ×ÉÄÙ ÁÎÁÌÉÚÁ áÄÁ-ÐÒÏÇÒÁÍÍ! üÔÏ, ÓÏÂÓÔ×ÅÎÎÏ,

_ÉÍÅÎÎÏ_ÔÏ,_ÄÌÑ_ÞÅÇÏ_ASIS_É_ÐÒÉÄÕÍÙ×ÁÌÓÑ_. ðÏÜÔÏÍÕ ÎÅÓËÏÌØËÏ

ÕÄÉ×ÉÔÅÌØÎÏ

ÞÉÔÁÔØ ÐÒÅÎÅÂÒÅÖÉÔÅÌØÎÙÅ ÏÔÚÙ×Ù ÔÅÈ, ËÔÏ ÌÕÞÛÅ ÍÎÏÇÉÈ ÄÏÌÖÅÎ ÐÏÎÉÍÁÔØ ÐÅÒÓÐÅËÔÉ×ÎÏÓÔØ ÐÏÄÏÂÎÙÈ ÐÏÐÙÔÏË.

íÎÅ ËÁÖÅÔÓÑ, ÄÏÓÔÁÔÏÞÎÏ ÚÁÍÅÎÉÔØ ÎÁÚ×ÁÎÉÑ ASIS-ÜÌÅÍÅÎÔÏ× ÉÈ

ÐÒÏÔÏÔÉÐÁÍÉ

ÉÚ ÓÁÍÏÊ áÄÙ, É ÐÏÌÕÞÉÔÓÑ ×ÐÏÌÎÅ ÐÒÉÌÉÞÎÙÊ áÄÁ-×ÉÚÕÁÌÉÚÁÔÏÒ. ñ,

ËÏÎÅÞÎÏ,

ÎÅÍÎÏÇÏ ÕÐÒÏÝÁÀ, ÎÏ ÉÄÅÑ, ÐÏ-ÍÏÅÍÕ, ÑÓÎÁ.

óÁÍ Á×ÔÏÒ ×ÐÏÌÎÅ ÕÂÅÄÉÔÅÌØÎÏ ÏÐÉÓÁÌ ÐÒÅÉÍÕÝÅÓÔ×Á ÓÁÍÏÊ ÐÒÏÓÔÏÊ

×ÉÚÕÁÌØÎÏÊ ÐÒÏÇÒÁÍÍÙ ÐÅÒÅÄ ÓÁÍÙÍ ÒÁÚ×ÉÔÙÍ "ËÏÍÁÎÄÎÙÍ" ÂÒÏÕÚÅÒÏÍ.

îÁ×ÓËÉÄËÕ ÍÏÖÎÏ ÐÒÅÄÌÏÖÉÔØ ÎÅÍÎÏÇÏ ÒÁÚ×ÉÔØ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ - ÓËÁÖÅÍ, ÓÄÅÌÁÔØ Ä×ÕÓÔÏÒÏÎÎÀÀ Ó×ÑÚØ ÍÅÖÄÕ ÄÅÒÅ×ÏÍ É ÉÓÈÏÄÎÙÍ áÄÁ-ÔÅËÓÔÏÍ.

÷ ASIS-ÐÒÅÄÓÔÁ×ÌÅÎÉÉ ×ÅÄØ ÅÓÔØ ËÏÏÒÄÉÎÁÔÙ ÐÏ ÔÅËÓÔÕ?

ôÏÇÄÁ, ÎÁÐÒÉÍÅÒ, ËÌÉËÎÕ× ÎÁ ËÁËÏÊ-ÎÉÂÕÄØ ËÏÎÓÔÒÕËÃÉÉ × ÐÒÏÇÒÁÍÍÅ, ÍÏÖÎÏ ÓÐÏÚÉÃÉÏÎÉÒÏ×ÁÔØ ÄÅÒÅ×Ï ÎÁ ÓÏÏÔ×ÅÔÓ×ÕÀÝÅÅ ASIS-ÐÒÅÄÓÔÁ×ÌÅÎÉÅ.

á ÅÓÌÉ ÓÄÅÌÁÔØ ÔÁË, ÞÔÏÂÙ, ËÌÉËÎÕ× ÎÁ ÐÅÒÅÍÅÎÎÏÊ × ÐÒÏÇÒÁÍÍÅ, ÐÏÌÕÞÉÔØ ÍÅÓÔÏ ÅÅ ÏÂßÑ×ÌÅÎÉÑ × ÄÅÒÅ×Å ðìàó ÐÏËÁÚÁÔØ ÜÔÏ ÍÅÓÔÏ × ÐÒÏÇÒÁÍÍÅ,- ÔÏ ÐÏÌÕÞÉÔÓÑ ÕÖÅ ÎÅÞÔÏ ÄÁÖÅ ÐÒÁËÔÉÞÅÓËÉ ÐÏÌÅÚÎÏÅ...

ôÏÌØËÏ, ÏÐÑÔØ-ÔÁËÉ, ÔÏÇÄÁ ÎÁÄÏ ÚÁÍÅÎÉÔØ ×ÓÅ ASIS-ÔÅÒÍÉÎÙ × ÄÅÒÅ×Å ÎÁ "ÒÏÄÎÙÅ" ÐÏÎÑÔÉÑ áÄÙ.

÷ÏÏÂÝÅ, ×ÉÄÅÔØ ÎÁÇÌÑÄÎÏÅ ÓÔÒÕËÔÕÒÎÏÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ Ó×ÏÅÊ ÐÒÏÇÒÁÍÍÙ, Ó ×ÏÚÍÏÖÎÏÓÔØÀ ÐÒÏÉÚ×ÏÌØÎÏ ÐÅÒÅÍÅÝÁÔØÓÑ ÐÏ ÎÅÍÕ É ÓÁÍÏÍÕ ×ÙÂÉÒÁÔØ "ÓÔÅÐÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ" ÐÏËÁÚÁ, Ó×ÏÒÁÞÉ×ÁÑ ÎÅÎÕÖÎÙÅ ÐÏÄÄÅÒÅ×ØÑ,-

ÏÞÅÎØ ÐÏÌÅÚÎÁÑ ×ÅÝØ ÓÁÍÁ ÐÏ ÓÅÂÅ - ÄÁÖÅ ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ

ÆÕÎËÃÉÏÎÁÌØÎÏÓÔÉ.

- úÕÅ×.

On Mon, Sep 17, 2007 at 02:24:08PM +0200, George Shapovalov wrote:

Или например выложить где то исходники (или даже просто дать мне, я их устрою вместе с останьлыми Ada-related у себя), чтоб я мог это добавить в portage ;).

 

Ссылка на исходники в первом письме. На счет portage я как-то

сомневаюсь, что это любопытно всем пользователям Gentoo, если

даже в нашей рассылки никто не загорелся желанием это

скомпилировать :)

 

Может имеет смысл смастерить где-то Ада Overlay куда и пихать

всевозможные пакеты Gentoo Linux для Ады? Честно сказать,

не знаю где проходит грань между тем, что должно быть в

дистрибутиве и тем что должно быть вне его.

 

Пользуясь случаем хочу спросить у автора gtkada.*-.ebuild

как следует собирать приложения на GtkAda в Gentoo?

Дело в том, что при установке через пакеты не ставится ни

gtkada-config, ни файлы проектов для gnatmake. Подозреваю, что

как-то через pkg-config, судя по содержимому

/usr/share/ada/gtkada/projects/

Сам чудом угадал опции линковки т.к. попался gtkada-config от

старой какой-то установки в /usr/local/

 

George

 

--

Maxim Reznik

On Mon, Sep 17, 2007 at 03:57:55PM +0400, Sergey I. Rybin wrote:

Это правильно! И какие мысли по поводу "чтоб о ней знали"? Вы в

адакорской GAP-программе участвуете? Если да - так можно туда

отправить.

 

 

К GAP отношения не имею. Может туда можно заслать это дело

не будучи членом? Или через какого-то участника этой рассылки?

 

--

Maxim Reznik

Tuesday, 18. September 2007, Maxim Reznik Ви написали:

Ссылка на исходники в первом письме. На счет portage я как-то

Да, прошу прощения, читал впопыхах, уже сам сообразил :).

 

Может имеет смысл смастерить где-то Ада Overlay куда и пихать

всевозможные пакеты Gentoo Linux для Ады?

А вот это идея, думаю стоит в эту сторону посмотреть. Вообще то раньше этот вопрос уже поднимался, но не было особо чем его наполнять. Сейчас думаю пакетов могло накопиться уже достаточно. Я в багзилле размещал некоторые ссылки, может кто нибудь еще что подскажет?

 

Пользуясь случаем хочу спросить у автора gtkada.*-.ebuild

как следует собирать приложения на GtkAda в Gentoo?

К сожалению сам я эту библиотеку не использую, но готов прислушаться к любым предложениям :).

 

Дело в том, что при установке через пакеты не ставится ни

gtkada-config, ни файлы проектов для gnatmake.

Вообще то ставится:

# qlist gtkada|grep config

/usr/lib/ada/x86_64-pc-linux-gnu-gnat-gcc-4.2/gtkada/gtkada-config

единственное, похоже я его не добавил в PATH :(. Хотя, чтоб не засорять излишне PATH, думаю лучше его либо разместить с другими исполняемыми файлами гната либо в чем то общем, для всех библиотек..

 

С файлами проэктов я пока толком не разбирался, но думаю по хорошему как нибудь надо будет. Судя по организации исходников похоже действительно предполагается использование gtkada-config, но было бы неплохо предоставить возможность также использовать и проэкты. В Дебиане, по крайней мере, вроде бы все через них сделано.

 

George

 

Может имеет смысл смастерить где-то Ада Overlay куда и пихать

всевозможные пакеты Gentoo Linux для Ады?

А вот это идея, думаю стоит в эту сторону посмотреть. Вообще то раньше этот

вопрос уже поднимался, но не было особо чем его наполнять. Сейчас думаю

пакетов могло накопиться уже достаточно. Я в багзилле размещал некоторые

ссылки, может кто нибудь еще что подскажет?

 

А можно попросить включить туда QtAda?

Tuesday, 18. September 2007, Vadim Godunko Ви написали:

А можно попросить включить туда QtAda?

Это уже и так в плане :).

https://bugs.gentoo.org/show_bug.cgi?id=143226

 

Пока были некоторые проблеммы, но скоро думаю доразгребу. Тогда это пойдет прямо в portage.

 

George

Tuesday, 18. September 2007, Vadim Godunko Ви написали:

А можно попросить включить туда QtAda?

Это уже и так в плане :).

https://bugs.gentoo.org/show_bug.cgi?id=143226

 

Пока были некоторые проблеммы, но скоро думаю доразгребу. Тогда это пойдет

прямо в portage.

 

Огромное спасибо!

Максим,

 

Поздравляю, поделка красивая и на мой (автора asistanta) взгляд - очень полезная, именно тем чем вы и описали, простотой применения новичками и помощи в освоении ASIS. asistant этому не особенно

помощник, у него цель в первую очередь - упростить написание тестов и демонстраторов дефектов для реализации ASIS для GNAT.

 

Странички у проекта пока нет.

 

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

 

ВФ

Vasiliy Fofanov wrote:

 

Максим,

 

Поздравляю, поделка красивая и на мой (автора asistanta) взгляд -

очень полезная, именно тем чем вы и описали, простотой применения

новичками и помощи в освоении ASIS. asistant этому не особенно

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

демонстраторов дефектов для реализации ASIS для GNAT.

 

 

Странички у проекта пока нет.

 

 

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

числе на английском.

 

По-хорошему, это надо встраивать в GPS с полной подддержкой всего

(режим browse и семантические запросы)...

Maxim Reznik wrote:

On Mon, Sep 17, 2007 at 03:57:55PM +0400, Sergey I. Rybin wrote:

Это правильно! И какие мысли по поводу "чтоб о ней знали"? Вы в

адакорской GAP-программе участвуете? Если да - так можно туда

отправить.

 

 

К GAP отношения не имею. Может туда можно заслать это дело

не будучи членом? Или через какого-то участника этой рассылки?

 

ASIS Viewer классная программа! Мне очень понравилась, к тому же помогла разобраться со структурой, с которой работает ASIS. Я думаю для студентов, изучающих ASIS -- самое то. Я как член GAP могу

запостить ее в GAP Contribs если Автор дает разрешение :)

 

Владислав Козловський

Чернівецький державний університет ім.Ю.Федьковича

член GAP

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

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