Структура программ может представлять собой единственный файл — запись из данных.

Структура программ


Каждая программа на языке программирования высокого уровня должна быть оформлена в соответствии с правилами этого языка.


Программа может представлять собой единственный файл — запись из данных или программного кода, — сохранённый на диске. Но обычно сложное ПО состоит из файла, содержащего главную программу — ядро, окружённое набором файлов, которые содержат подпрограммы или процедуры.

Ядро осуществляет вызов процедур, необходимых для выполнения некоторой задачи, например показа диалогового окна или открытия файла. Процедура также может вызвать другую процедуру в том же самом файле, или в другом файле, который является частью программы, или в файлах Windows для общих функций.

Ядро и подпрограммы вместе определяют способ ввода (получения информации программой) с клавиатуры, из памяти, портов и файлов, правила для обработки входных данных и способ отправки, или вывода, информации на экран, в память, порты и файлы. Как правило, когда пользователь вводит информацию в программу, она запоминается как переменная.

Как предполагает термин, информация переменных меняется на разных ступенях. Программы сами по себе тоже способны хранить в переменных информацию, полученную в результате вычислений или манипуляций данными.

После того как программа приобретает информацию в переменной, она может ею управлять при помощи команд, которые выполняют математические операции над числами или анализируют текстовые строки.

Синтаксический анализ — это объединение, удаление или извлечение некоторых текстовых символов для того, чтобы использовать их в другом месте программы. Если переменная — это текст, её обычно называют строкой. Строка может быть и математической, но чаще термин «строка» относится к непрерывному ряду буквенно-цифровых и пунктуационных символов.

Программы могут полагаться на BIOS для выполнения многих функций ввода-вывода, таких как распознавание нажатий клавиш, отображение нажатых клавиш на экране, передача данных через параллельные и последовательные порты, чтение и запись в оперативную память, чтение и запись файлов на диск.

Язык программирования всё ещё должен содержать команды для вызова служб BIOS.


Интерпретатор и компилятор — это программы, которые переводят исходный понятный людям код программы типа BASIC или С++ в машинный язык, который понимает компьютер.

Интерпретатор и компилятор — это программы, которые переводят исходный понятный людям код программы типа BASIC или С++ в машинный язык, который понимает компьютер.

Программа должна быть способна к выполнению различных задач при различных обстоятельствах. Это характеристика, которая отражает мощь и многосторонность языков программирования. И поэтому программы редко жёстко следуют по прямой от начала и до конца.

Существуют команды, которые заставляют компьютер выполнять переходы (ветвление) к различным частям программы для выполнения других команд. В BASIC это команда GOTO. Язык ассемблера делает то же самое с помощью команды JMP (сокращение от jump — «прыжок»).

Ветвление используется в комбинации с булевыми логическими функциями языков программирования. Например, чтобы программа изменила ход выполнения, когда выполнится определённое условие, может быть использована команда «if… then…» («если, то…»). Программа проверяет, является ли некоторое условие истинным, и если это так, то она выполняет некоторую команду.

Интерпретатор и компилятор — это программы, которые переводят исходный понятный людям код программы типа BASIC или С++ в машинный язык, который понимает компьютер.

Различие между компилятором и интерпретатором следующее: интерпретатор переводит исходный код строка за строкой при каждом запуске программы, а компилятор переводит весь исходный код в исполняемый файл, который на определённом типе компьютеров, таких как PC или Mac, запускается без интерпретатора.

Большинство продаваемых или загружаемых программ скомпилированы. Процесс компиляции начинается с части программы компилятора, называемой лексическим анализатором. Он прочитывает весь исходный код по одному символу. По мере считывания символов анализатор пытается объединить их в зарезервированные слова — компьютерные команды или знаки препинания, которые он понимает.

Когда лексический анализатор встречает зарезервированное слово или знак препинания, он генерирует лексему кода. Лексема подобна аббревиатуре, представляющей информацию в сжатом виде. Результатом лексического анализа является поток лексем, которые представляют все значимые элементы программы — команды, переменные и числа.

Вторая часть компилятора, называемая синтаксическим анализатором, выполняет синтаксический анализ, т. е. оценивает поток лексем, созданных лексическим анализатором. Синтаксический анализатор преобразует каждую лексему в узел синтаксического дерева, которое представляет логическую схему программы.

Каждый узел дерева представляет операцию программы, которая генерирует данные или команду, которая передаётся к вышестоящему узлу. Этот узел, в свою очередь, выполняет другую операцию и передаёт результат следующему узлу.

Когда синтаксический анализатор заканчивает работу, компилятор преобразует всю программу в дерево, которое представляет структуру программы. Самый верхний узел называется программой, а узлы, которые передают ей результаты, называются подпрограмма 1, подпрограмма 2 и т. д., вплоть до самых нижних специфических узлов дерева.

Третья часть компилятора называется генератором кода, который работает через синтаксическое дерево, производя сегменты машинного кода в каждом узле. Каждому узлу дерева генератор подбирает шаблон машинного кода, соответствующий операции, назначенной этому узлу.

Генератор заполняет пробелы в каждом шаблоне значениями и переменными, найденными в каждом узле. После того как шаблон заполнен, он добавляется к строке двоичных чисел, которые составляют машинный язык и значения программы.

На конечном этапе оптимизатор проверяет код, произведённый генератором кода, на избыточность. Оптимизатор устраняет любую операцию, которая выдаёт результат, идентичный предшествующим операциям, делая программу, выпускаемую компилятором, более компактной и быстрой.


Не существует абсолютно никаких технических причин для того, чтобы на загрузку компьютера уходило больше нескольких секунд.
(Джеф Раскин)

Структура программ


ВОЗМОЖНО, ВАМ ПОНРАВИТСЯ!


Поиск по сайту idhelp.ru

Радуйся полученным знаниям и поделись с другими.

Поделитесь с друзьями в социальных сетях!

Нажмите на иконку, чтобы опубликовать на своей странице


Все материалы

Яндекс.Метрика