Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





СОЗДАНИЕ ПРОСТЕЙШИХ ПРОГРАММ

Организация и структурирование программы

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

Пример простейшей программы на языке Турбо Паскаль:

program Simple;
begin
WriteLn('исполняется программа Simple');
end.

 

Представления программы и данных

Программа может иметь разные представления:

- текстовое, на языке программирования (сохраняемое системой Турбо Паскаль в виде pas-файла),
- кодовое (машинное) - двоичный код готовой к исполнению (сохраняемое системой Турбо Паскаль в виде ехе-файла).

Преобразование представления программы из текстового в кодовое выполняется компилятором.
В текстовом представлении программы описываемые и обрабатываемые ею программные объекты идентифицируются именами.

В Турбо Паскале именем является идентификатор, который определяется здесь как последовательность латинских букв, цифр и символа "_", начинающаяся с буквы или "_" и содержащая не более 127 символов. Прописные и строчные буквы эквивалентны.
Нельзя использовать в качестве имен зарезервированные (ключевые) слова языка Турбо Паскаль.

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

 

Значения данных могут иметь два представления:

1. внешнее - в тексте программы, при вводе или выводе значений на экран и, возможно, хранении (в текстовом файле);
2. внутреннее - в оперативной памяти при исполнении программы и, возможно, при хранении (в файлах другого типа).

 

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

 

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

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

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

 

Распределение памяти при исполнении программы

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

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

 

 

В памяти, отводимой для рассматриваемой программы, при ее инициализации (загрузке) выделяются области 1 и 2, в которых размещаются указанные коды.
Заметим, что размеры кода программы (в том числе кода ее подпрограмм) и размеры используемых в ней объектов модулей становятся известны при компиляции.
Следовательно (вычислив границу между областями 2 и 3) компилятор может назначить адреса для каждого из глобальных данных, т.е. данных (констант и переменных), описанных в глобальном блоке (блоке программы).

В области 3 (по правилам Турбо Паскаля) размещаются также все типизированные константы программы (независимо от того, были они описаны в глобальном или в каком-либо из локальных блоков). Выделение памяти данным (назначение им адресов) делается в соответствии с их размерами, заданными в описаниях типов этих данных.
Не надо рассчитывать на то, что при выделении переменным памяти в нее будут помещены какие-либо "нужные" значения.

 

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

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

 

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

 

Компоненты структурирования

Компонент структурирования - некоторая замкнутая конструкция, содержащая описания программных объектов и/или операций над ними. Здесь замкнутость конструкции означает только, что она имеет начало и конец, задаваемые специальными языковыми средствами (различные скобки, начальное и завершающее ключевые слова или символы).
Компонентами структурирования в языке Турбо Паскаль являются: модули, блоки, подпрограммы (функции и процедуры), составные операторы.




 

Комментарии:


Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru