Содержание
- 2. 1 Основные принципы построения трансляторов Транслятор — это программа, которая переводит входную программу на исходном (входном)
- 3. Во-вторых, исходными данными для работы транслятора служит текст входной программы — некоторая последовательность предложений входного языка
- 4. Компилятор — это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке
- 5. Этапы трансляции. Общая схема работы транслятора
- 6. Компилятор выполняет две основные функции: 1) является распознавателем для языка исходной программы. Генератором цепочек входного языка
- 7. Синтаксический разбор — это основная часть компилятора на этапе анализа. Она выполняет выделение синтаксических конструкций в
- 8. Генерация кода — это фаза, непосредственно связанная с порождением команд, составляющих предложения выходного языка и в
- 9. Проход — это процесс последовательного чтения компилятором данных из внешней памяти, их обработки и помещения результата
- 10. Трансляторы с языка ассемблера («ассемблеры») Язык ассемблера — это язык низкого уровня. Структура и взаимосвязь цепочек
- 11. Компиляторы с языка ассемблера реализуются чаще всего по двухпроходной схеме. На первом проходе компилятор выполняет разбор
- 12. Макроопределения и макрокоманды Макрокоманда представляет собой текстовую подстановку, в ходе выполнения которой каждый идентификатор определенного вида
- 13. Для того чтобы указать, какие идентификаторы на какие строки необходимо заменять, служат макроопределения. Макроопределения присутствуют непосредственно
- 14. 2 Генерация и оптимизация кода С целью повысить эффективность компиляторов разбор цепочек входного языка выполняется в
- 15. Примерами таких конструкциями являются блоки описания констант и идентификаторов или операторы, где тот или иной идентификатор
- 16. Семантический анализатор выполняет следующие основные действия: проверка соблюдения во входной программе семантических соглашений входного языка; дополнение
- 17. Проверка соблюдения во входной программе семантических соглашений входного языка заключается в сопоставлении входных цепочек программы с
- 18. Примерами таких соглашений являются следующие требования: каждая метка, на которую есть ссылка, должна один раз присутствовать
- 19. при вызове процедур и функций число и типы фактических параметров должны быть согласованы с числом и
- 20. Проверка элементарных смысловых норм языков программирования, напрямую не связанных с входным языком, — это сервисная функция,
- 21. каждая переменная должна быть определена до ее первого использования при любом ходе выполнения программы (до использования
- 22. Идентификация лексических единиц языков программирования Идентификация переменных, типов, процедур, функций и других лексических единиц языков программирования
- 23. Распределение памяти. Принципы распределения памяти Распределение памяти — это процесс, который ставит в соответствие лексическим единицам
- 24. Исходными данными для процесса распределения памяти в компиляторе служат таблица идентификаторов. Процесс распределения памяти в современных
- 25. Память можно разделить на локальную и глобальную память, динамическую и статическую память. Глобальная область памяти —
- 26. Статическая область памяти — это область памяти, размер которой известен на этапе компиляции. Динамическая область памяти
- 27. Дисплей памяти процедуры (функции). Стековая организация дисплея памяти Дисплей памяти процедуры (функции) — это область данных,
- 28. Стековая организация дисплея памяти процедуры позволяет организовать рекурсию вызовов и имеет все преимущества перед динамической схемой,
- 29. Память для типов данных (RTTI-информация) Результирующая программа может обрабатывать не только переменные, константы и другие структуры
- 30. Каждому типу данных в RTTI-таблице соответствует своя область данных, в которой хранится вся необходимая информация об
- 31. Генерация кода. Методы генерации кода Генерация объектного кода — это перевод компилятором внутреннего представления исходной программы
- 32. В качестве анализируемых законченных синтаксических конструкций выступают операторы, блоки операторов, описания процедур и функций. Смысл (семантику)
- 33. Для семантически схожих конструкций различных входных языков программирования может порождаться типовой результирующий код. Чтобы компилятор мог
- 34. Общие принципы оптимизации кода Эффективность результирующей программы важна для ее разработчика, т.к. современные компиляторы выполняют еще
- 35. Компилятор может вообще не выполнять оптимизацию, и при этом результирующая программа будет правильной, а сам компилятор
- 36. В качестве показателей эффективности результирующей программы можно использовать два критерия: объем памяти, необходимый для хранения всех
- 37. Принципиально различаются два основных вида оптимизирующих преобразований: преобразования исходной программы (в форме ее внутреннего представления в
- 38. Оптимизация может выполняться для следующих типовых синтаксических конструкций: линейных участков программы; логических выражений; циклов; вызовов процедур
- 39. Существуют методы, позволяющие снизить затраты кода и времени выполнения на передачу параметров в процедуры и функции
- 40. Некоторые языки программирования (C++) позволяют разработчику исходной программы явно указать, какие параметры или локальные переменные процедуры
- 41. 3 Современные системы программирования Понятие и структура системы программирования Компилятор является составной частью системного ПО. Компиляторы
- 42. В задачу разработчика программы входило обеспечить взаимосвязь всех используемых технических средств: подать входные данные в виде
- 43. Все эти действия выполнялись с помощью последовательности команд, инициировавших запуск соответствующих программных модулей с передачей им
- 44. Следующим шагом в развитии средств разработки стало появление так называемой «интегрированной среды разработки». Интегрированная среда объединила
- 45. В состав ПО были сначала включены соответствующие библиотеки, обеспечивающие поддержку развитого графического интерфейса пользователя и взаимодействие
- 46. Примеры ресурсов: тексты сообщений, выдаваемых программой; цветовая гамма элементов интерфейса; надписи на таких элементах, как кнопки
- 47. Структура современной системы программирования Системой программирования будем называть весь комплекс программных средств, предназначенных для кодирования, тестирования
- 48. В качестве основных тенденций в развитии современных систем программирования следует указать внедрение в них средств разработки
- 49. Принципы функционирования систем программирования Функции текстовых редакторов в системах программирования Текстовый редактор в системе программирования —
- 50. Компилятор как составная часть системы программирования Компиляторы являются основными модулями в составе любой системы программирования (СП).
- 51. Компоновщик. Назначение и функции компоновщика Компоновщик (редактор связей) предназначен для связывания между собой объектных файлов, порождаемых
- 52. Загрузчики и отладчики. Функции загрузчика Компилятор и компоновщик не могут знать точно, в какой реальной области
- 53. Отладчик — это программный модуль, который позволяет выполнить основные задачи, связанные с мониторингом процесса выполнения результирующей
- 54. Библиотеки подпрограмм как составная часть систем программирования Библиотеки подпрограмм составляют существенную часть систем программирования. Они состоят
- 55. Динамические библиотеки в отличие от традиционных (статических) библиотек подключаются к программе не в момент ее компоновки,
- 56. Разработка программ в архитектуре «клиент—сервер» Среди всего множества компонентов прикладной программы можно было выделить две логически
- 57. В первую (серверную) составляющую такого приложения относят все методы, связанные с доступом к данным. Чаще всего
- 58. Разработка программ в трехуровневой архитектуре. Серверы приложений Трехуровневая архитектура разработки приложений явилась логическим продолжением идей, заложенных
- 59. Разделение клиентской части на две составляющих потребовало организации взаимодействия между этими составляющими. Стали появляться новые интерфейсы
- 60. Примеры современных систем программирования 1 Системы программирования компании Borland/lnprise Turbo Pascal. Pascal был предложен Н. Виртом
- 61. В Borland Delphi появились принципиальные изменения: новый язык программирования — Object Pascal; компонентная модель среды разработки,
- 62. 2 Системы программирования фирмы Microsoft Microsoft Visual Basic. Система программирования Microsoft Visual Basic является одним из
- 63. Microsoft Visual C++. Эта система программирования в настоящее время построена в виде интегрированной среды разработки, включающей
- 64. Концепция .NET - это не система программирования, а новейшая технология, предложенная фирмой Microsoft с целью унификации
- 65. 3 Системы программирования под ОС Linux и UNIX Системы программирования в составе ОС типа UNIX. Язык
- 66. Системы программирования проекта GNU Проект GNU был начат в 1984 году. Идея проекта GNU заключается в
- 67. Проект Borland Kylix В рамках проекта Borland Kylix компания Borland создала и распространяет на рынке программного
- 68. Библиотека построена в виде компонентов на основе иерархии классов языка Object Pascal. В рамках этого проекта
- 69. 3 Разработка программного обеспечения для сети Интернет При осуществлении взаимодействия по сети двух компьютеров один из
- 70. Язык HTML. Программирование статических Web-страниц Суть его достаточно проста: Интернет-сервер создает текст на языке HTML и
- 71. Таким образом, всякий раз при новом обращении клиент получает новый текст HTML. CGI (общедоступный шлюзовой интерфейс)
- 72. Кроме интерфейса CGI существуют и другие варианты интерфейсов, позволяющие динамически создавать HTML-код путем запуска на сервере
- 73. Текст на интерпретируемых языках, которые поддерживаются такими Web-технологиями, как ASP или РНР, представляет собой часть текста
- 74. Все эти языки сценариев обладают присущими им характерными особенностями. Во-первых, они имеют мощные встроенные функции и
- 75. Языки программирования Java и Java Script Основная идея, отличающая язык Java от многих других ЯП, заключается
- 76. Одной из отличительных особенностей данного языка является использование специального механизма распределения памяти (менеджера памяти), который должен
- 77. JBuilder. Необходимость иметь в составе архитектуры вычислительной системы клиентского компьютера виртуальную Java-машину, а также довольно высокие
- 78. Вопросы для самопроверки Что такое трансляция, компиляция, транслятор, компилятор? Из каких процессов состоит компиляция? Какую роль
- 80. Скачать презентацию