Page 213 - 149
P. 213

На рисунку 10.7 представлено логічна структура компілятора. Штихові
                  стрілки зображують інформаційні потоки, тоді як суцільні стрілки вказують
                  на порядок роботи програмних компонентів компілятора. Процес компіляції
                  складається  з  двох  етапів:  аналізу  вихідної  програми  і  синтезу  об’єктної
                  програми. На етапі аналізу реалізується ділення тексту на складові частини, а

                  на  етапі  синтезу  з  них  будують  частини  еквівалентної  об’єктної  програми.
                  При  цьому  на  етапі  аналізу  компілятор  будує  декілька  інформаційних
                  таблиць, які в процесі компіляції використовується на всіх етапах. Одною з
                  центральних таблиць є таблиця символів. Вона складається з елементів, які
                  відповідають всім різновидам ідентифікаторів, які зустрічаються у вихідній
                  програмі.  Лексичний  аналізатор  створює  початкові  елементи  шляхом
                  поступового  сканування  вихідної  програми.  Елементи  таблиці  символів
                  містять  назву  ідентифікаторів  вихідного  тексту  МП-програми,  додаткові
                  відомості про ці ідентифікатори: тип(проста змінна, масив тощо), тип значень
                  даних(ціле,  дійсне  число  тощо)  і  т.д.  семантичний  аналізатор  вносить  цю
                  інформацію  в  таблицю  символів  поступово  в  порядку  обробки  декларацій,
                  заголовків  програм  та  інструкцій.  Синтезуюча  частина  компілятора
                  використовує  інформацію  таблиці  символів  для  побудови  ефективного
                  об’єктного  коду  цільової  МП-програми.  Поряд  з  таблицями  символів
                  будуються таблиці констант, таблиці циклів тощо.



                                                                    Аналіз                  Інформаційні таблиці
                               Вихідний текст             Лексичний аналізатор

                                 програми
                                                                                             Таблиця символів


                                                             Синтаксичний і

                                                              семантичний                    Таблиця констант
                                                              аналізатори


                                                                                              Таблиця циклів


                                                             Генерація кодів                   Інші таблиці


                                                                    Синтез

                                                                                                    Компілятор

                                                           Об’єктна програма


                         Рисунок 10.7- Логічна структура компілятора

                         Інтерпретатори




                                                                                                             192
   208   209   210   211   212   213   214   215   216   217   218