![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 09.08.2007
Сообщений: 2
|
![]()
FreeWare (бесплатно), предлагается пакет PGF (Pascal-programs Graphical Formatter), выполняющий улучшенное форматирование исходного кода Pascal и Delphi программ.
Сформулирован новый подход к форматированию исходных текстов (кодов) программ, который был назван графическим форматированием. Основные этапы данного подхода: последовательное выделение из текста отдельных модулей (подпрограмм и функций); их целостный и всесторонний структурный анализ; вывод форматированного текста, визуализирующего выявленную структуру модуля, с максимальным добавлением вспомогательных комментариев структурного характера. На базе этого подхода разработан пакет PGF (Pascal-programs Graphical Formatter) выполняющий улучшенное форматирование исходного кода Pascal и Delphi программ. Надеюсь, он понравиться программистам. Несколько слов более подробно о графическом форматировании. При программировании собственных и анализе чужих модулей, особенно если в модуле более 150-200 операторов, было бы неплохо, при анализе исходного кода программ иметь возможность: 1. Для любого оператора, НА ЕГО ЖЕ СТРОКЕ, наглядно видеть не только то, на какой глубине вложенности он находится (имеющиеся редакторы и форматизаторы это обеспечивают), но и какими операторами эти блоки созданы (при глубине вложенности более 4-5 уровней приходится часто перелистывать наверх, чтобы уточнить, каким оператором порожден данный блок). 2. На границах операторных скобок BEGIN / END иметь АВТОМАТИЧЕСКИ обновляемую информацию о местоположении соответствующего элемента. 3. При каждом END, закрывающем операторную скобку BEGIN / END, иметь АВТОМАТИЧЕСКИ обновляемый комментарий с информацией о породившем операторную скобку операторе. Опять приходится перелистовать наверх, когда подряд стоят несколько END. Ручные комментарии, если они и были созданы при написании, при отладке быстро становятся неточными. 4. Для меток и операторов передачи управления, в том числе незаслуженно забытого GOTO, НА ИХ ЖЕ СТРОКЕ, иметь информацию о том, на какой уровень вложенности осуществляется переход, является ли переход допустимым, где расположена цель перехода. Для метки должна указываться информация о количестве и допустимости переходов на нее и о точном их местоположении. 5. Многострочные переходящие комментарии обычно выделяются цветом. Это часто бывают участки программ, временно отключённых при отладке. Чтобы не путать с активным текстом, лучше их как-то дополнительно выделять. 6. Если в условных операторах или в операторах цикла обрабатывается один оператор, то здесь подразумеваются неявные операторные скобки. Это иногда приводит программистов к ошибкам при анализе структуры. Чтобы застраховаться от этого, предлагается все неявные операторные скобки сделать явными, путем АВТОМАТИЧЕСКОГО добавления BEGIN / END. Тогда структура программы, которую видит программист, будет идентична структуре, реализуемой транслятором. Это также даст положительный эффект в оформлении блоков. Раз BEGIN стоит везде, то его информационная ценность почти нулевая, и его можно убрать в конец строки породившего блок оператора. Заголовком блока станет легко читаемая строка породившего этот блок оператора, поскольку ни BEGIN, ни сдвинутое вправо тело блока его не заслоняют. Этим также закончится спор о том, выделять BEGIN в отдельную строку или нет. 7. При отладке часто нарушается согласованность (BEGIN / END) и (REPEAT / UNTIL) (ошибочно добавлен / удален лишний BEGIN или END), о чем транслятор дает сообщение в конце программы. Если в программе несколько подпрограмм и отладка проводилась в некоторых из них, то становится сложно локализовать ошибку. Было бы желательно, чтобы АВТОМАТИЧЕСКИ осуществлялся структурный анализ каждой программы и подпрограммы; при обнаружении несогласованных BEGIN / END находить в коде программы наиболее вероятные места для добавления недостающих END / UNTIL, и добавлять их в эти места с соответствующим предупреждающим сообщением. Это обеспечит: во-первых локализацию ошибки в пределах одного модуля; во-вторых в самом модуле в одном из вероятных мест будет уже добавлен недостающий оператор, и программист, сравнив реальную визуализованную структуру с задуманным алгоритмом, может или оставить этот оператор на этом месте, или перенести оператор в другое место. Это значительно проще, чем искать причину по всему тексту. Данный подход и его конкретная реализация для Pascal и Delphi программ выноситься на обсуждение. Ваши замечания и предложения, за что всем заранее спасибо, будут зафиксированы, а затем, по мере возможности, учтены и реализованы в последующих версиях. В комплект поставки входят: форматизатор PGFDos.exe; исходный код Delphi-программы PGFSour.pas и ее PGFWin.exe; PGF_En.doc, PGF_Ru.doc, PGF_Ge.doc со справочной информацией на соответствующих языках. Мои координаты: Nik: Sasvi, Email: pascal_format_gr@mail.ru |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
![]()
интересно. и где этот "комплект поставки"?
Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
![]()
Смысл поднимать тему почти годовой давности?
Автор оставил координаты, напиши да спроси. ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 02.10.2008
Сообщений: 11
|
![]()
Уважаемый Роман.
Рад любому сообщению, поскольку одобрительные приносят удовольствие, а критические дают стимул для улучшения продукта = еще больше одобрительных сообщений. Относительно GOTO не настаиваю, просьба предварительно посмотреть новую версию PGF 1.1 на WWW.PRAFOR.PVT.GE Буду рад узнать Ваше мнение. Желаю Всего наилучшего. Vasil54, Email:grafor.news@ gmail.com Последний раз редактировалось Viteef; 18.10.2008 в 01:45. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
![]()
посмотрел. действительно интересный продукт. полезный. есть все, что надо.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использовании Pascal для написания программ под мобильный телефон | Roman | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 30.05.2009 09:50 |
Организация программ с использованием процедур....Pascal | flexo_77 | Помощь студентам | 1 | 19.12.2007 14:06 |
Улучшенный форматизатор исходников Pascal и Delphi. | Sasvi | Софт | 2 | 10.08.2007 20:03 |