Ada_Ru форум

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

Рефакторинг АДА кода.

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

Сообщения

faksenenkov
Рефакторинг АДА кода.
2004-09-16 05:59:56

Добрый день!

Есть идея написать приложение, которое будет производить рефакторинг АДА программы. Например, следующее преобразование:

Var_Name --> Package_Name.Var_Name.

 

Какие есть идеи, насчет других рефакторингов? Применительно к языку АДА.

faksenenkov wrote:

 

Добрый день!

Есть идея написать приложение, которое будет производить рефакторинг АДА программы. Например, следующее преобразование:

Var_Name --> Package_Name.Var_Name.

 

Какие есть идеи, насчет других рефакторингов? Применительно к языку АДА.

Хорошая идея, а то как понапишут все пакеты в "use", невозможно становится программы читать.

 

Да, в слове Ада только первая буква большая, это не сокращение от American Dentists Association.

Хорошая идея, а то как понапишут все пакеты в "use", невозможно становится программы читать.

 

На это многие жалуются.

 

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

которые в случае Ады можно выполнять автоматически.

 

Пока что у нас список весьма скромный:

 

1. короткое "use-visible" имя -> полностью квалифицированное имя

 

2. Вызов с позиционной подстановкой параметров -> вызов с ключевой

подстановкой

 

3. Замена неявных параметров в вызове явными.

 

4. Пункт 3 для конкретизаций настроек

 

5. Пункт 3 для агркегатов

 

6. Пункт 4 для конкретизаций настроек

 

7. Fun (X, Y) = True -> Fun (X, Y)

Fun (X, Y) = False -> not Fun (X, Y)

 

8. if (A > B) then -> if A > B then

 

9. Замена числовой константы на named number

 

10. Систематическая замена одного имени на другое.

 

11. Упорядочение по алфавиту локальных тел

 

12. when others => -> when Var1 | Var2 | .... =>

================================================================

 

Кто что может ДОБАВИТЬ???

 

(В перспективе соответствующий прибор может появиться в составе GNAT-ского

инструментария)

On Thu, Sep 16, 2004 at 11:26:05AM +0400, Sergey I. Rybin wrote:

Хорошая идея, а то как понапишут все пакеты в "use", невозможно становится программы читать.

 

На это многие жалуются.

 

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

 

Пока что у нас список весьма скромный:

 

[skip]

================================================================

Кто что может ДОБАВИТЬ???

 

13) Вынос спецификации для тела подпрограммы в начало

декларативного региона, если ее там нет

 

14) Такие красивенькие комментарии вида

--------------

-- Put_Line --

--------------

 

15) Давно мечтаю имять штуку расставляющую

for X'Storage_Pool use XXX.

Чтоб ставить Debug_Pool для отладки утечки памяти

или автосборки мусора.

Хотя это из другой песни однако.

 

А чем вообще рефакторинг отличается от коррекции стиля?

Если ничем, то берем Ada Quality & Style и идем по порядку...

 

(В перспективе соответствующий прибор может появиться в составе GNAT-ского инструментария)

 

 

Штука, которая меняет

>имя -> полностью квалифицированное имя

>Систематическая замена одного имени на другое.

 

есть и даже работает :-), называется semtools

http://www.ada-ru.org/soft_bin_devel.html#semtools

http://www.adalog.fr/compo2.htm#Semtools

 

--

Maxim Reznik

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

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