Энциклопедия Turbo Pascal. Главы 5-8
Страница 31. Глава 8. Синтаксический разбор и вычисление выражений


Глава 8. Синтаксический разбор и вычисление выражений

     Как вы напишите программу,  которая будет брать  в  качестве
входа строку, содержащую численное выражение, например, 10-5*3, и
возвращает ответ,  который в данном случае равен -5? Если "высшее
духовенство" еще существует среди программистов,  она должна быть
составлена теми немногими,  кто знает как это делается. Хотя каж-
дый, кто пользуется компьютером, мистифицирован способом, которым
компиляторы и интерпретаторы языков высокого  уровня  преобразуют
такие сложные выражения, как 10*3 - (4+COUNT)/12 в команды, кото-
рые может выполнять компьютер.  Процесс преобразования называется
синтаксическим разбором.  Синтаксический разбор - это основа всех
компиляторов и интерпретаторов с языков высокого уровня.  Некото-
рые  программисты  знают,  как написать программу синтаксического
разбора;  эта область программирования доступна только для немно-
гих посвященных.
     Однако, такого быть не должно.  Синтаксический разбор на са-
мом  деле является довольно прозрачным и похож на другие проблемы
программирования.  В некоторых отношениях он даже легче,  так как
имеет дело со строгими синтаксическими правилами.  В данной главе
рассматривается метод рекурсивного нисходящего разбора,  а  также
все вспомогательные процедуры,  которые позволяют вычислить слож-
ные численные выражения.  Все эти процедуры будут помещены в один
файл,  который вы будете использовать всякий раз, когда это пона-
добиться.  После того,  как вы научитесь пользоваться данным фай-
лом,  вы можете развить и модифицировать его в соответствии с ва-
шими нуждами и присоединить себя к "высшему духовенству".

 
« Предыдущая статья   Следующая статья »