Введение

В разработке программного обеспечения синтаксические методы — это техники создания корректных программ. Эти техники стремятся выявлять и, таким образом, предотвращать определенные виды дефектов (ошибок) путем анализа структуры создаваемого кода на синтаксическом, а не семантическом уровне.

Использование

Синтаксические методы часто используются, когда формальные методы невозможны, и зачастую представляют собой более простое и, что более важно, более дешевое решение. В системах, не критичных к безопасности, применение формальных методов может оказаться слишком затратным по сравнению с получаемой выгодой. Затраты на моделирование, персонал, реализацию и разработку часто превышают преимущества, полученные от предотвращения возможных сбоев. Данный подход основан на использовании абстрактного графа зависимостей, который строится на основе анализируемой системы. Абстрактный граф зависимостей – это ориентированный граф, состоящий из вершин, соединенных однонаправленными ребрами. Чаще всего вершины и ребра графа отражают входные и выходные данные функций или компонентов системы. Анализируя построенный абстрактный граф зависимостей, разработчик может выявлять синтаксические аномалии (или аномалии Приса) в системе. Хотя аномалии не всегда являются дефектами, они часто указывают на возможные дефекты в системе. Таким образом, аномалии в системе помогают разработчику определить направление поиска дефектов.

Общие ссылки

"Синтаксическая теория архитектуры программного обеспечения". Dean, Thomas R., Cordy, James R. IEEE Transactions on Software Engineering 21 (4), с. 302–313 (1995)
"Синтаксическая абстракция типов" Grossman, D., Morrisett, G., Zdancewic, S. ACM Transactions on Programming Languages and Systems 22 (6), с. 1037–1080
"Новый алгоритм для выделения подпрограмм из неструктурированных программ". Harman, M., Danicic, S. Журнал технического обслуживания и эволюции программного обеспечения 10 (6), с. 415–441
"Реинжиниринг встроенного программного обеспечения с использованием синтаксического распознавания образов" Fournigault, M., Liardet, P. Y., Teglia, Y. Trémeau, A. Robert Inacio, F. Lecture Notes in Computer Science (включая подсерии Lecture Notes in Artificial Intelligence и Lecture Notes in Bioinformatics) Том 4277 LNCS, I, 2006, с. 527–536. (2006)