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

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


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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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



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

Случайная статья

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

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

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


Новое на сайте

18 сентября 2023
01 сентября 2023
15 августа 2023
24 июля 2023

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

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