
Конкретизируем основные понятия программирования.
Повторимся, мы с Вами поняли, что основная суть программирования — это эффективная работа с данными. Программирование — это совокупность двух не разрывных понятий — Кода и Данных. Основные понятия программирования пронизывают всю систему создания кода, касаются всех языков без исключения. Практическое понимание этих основ позволит Вам быстро освоить любой язык.
Данные.
Данные представлены в следующем виде:
- переменные;
- константы.
Данные могут быть сгруппированы для удобства их использования и обработки на:
- структуры.
Разновидностями структур в современных языках программирования являются:
- перечисления;
- объединения;
- записи с битовыми полями;
- массивы;
- классы (в отличие от структуры, класс группирует и код, и данные).
Разновидностью массива является (так сложилось исторически и до сих пор актуально):
- нультерминированная строка.
Ключевым понятием, неотрывным от данных является:
- указатели.
Код.
Код представлен в виде:
- функции.
Функция представляет собой определённую последовательность (алгоритм) манипулирования:
- данными;
- процессами взаимодействия:
-машина — человек;
-машина — машина.
Функция может:
- иметь вводимые и выводимые данные (ввод/вывод);
- не иметь вводимых и выводимых значений.
Единство Кода и Данных.
Необходимо понимать, что код и данные фактически представляют собой последовательности цифр. Таким образом, код можно рассматривать также как совокупность данных. Ведь любая функция — это для компьютера набор единиц и нулей. Единство кода и данных является одним из ключевых понятий программирования.
Вот и всё! Больше нет ничего! Для искушённых читателей отметим, что объектно-ориентированное программирование, в любой его ипостаси вводит ещё одно ключевое понятие — класс (объект класса). Однако класс — есть не что иное как вид структуры, включающий в себя функции и данные. Класс представляет собой всего лишь более высокий уровень абстракции (обобщённого, цельного, неделимого понятия) и никак не влияет на основу выбранного нами деления программы на код и данные.
Единство кода и данных в современном программировании реализовано в понятии класса:
- класс — отдельное понятие, но фактически — структура, содержащая как данные, так и код.
С понятием класса связано другое понятие — степень абстракции, то есть степень обобщения, группирования частей кода и данных в так называемые «объекты«. Ассемблер — язык низкого уровня, содержащий, однако, возможность работы с достаточно высокой степени абстракции на уровне процедурного языка программирования, такого, как Си (речь идёт о макросах). При изучении программирования на ассемблере в среде Windows с применением Win32 API, используя возможности MASM32 и FASM, вы увидите, что разницы между ассемблерным кодом и кодом на языке Си практически нет.
Работа с классами, как в объектно-ориентированных языках программирования, таких как С++, в ассемблере можно реализовать через структуры, но такой подход используется редко (иногда, при работе с DirectX, COM и т.п.).
Байт — единица кода и данных.
Единицей кода и данных является :
- байт.
Не бит, а байт! Бит — это единица информации. Так удобнее для машины. Компьютер не может напрямую работать с битом данных — только с байтом (8 бит — 256 вариантов значений). Однако, манипулировать приходится с различными более удобными для человека понятиями — целые числа, числа с плавающей запятой, десятичные числа и т.п. Взаимосвязь указанных понятий рассмотрим ниже.
Приступаем к практике.
Рассмотрев основные понятия программирования, мы переходим к практике. Советуем Вам периодически возвращаться к теоретическим основам создания кода. В процессе практической работы придёт просветление и вы осознаете всю важность изложенной обобщённой информации.
Программирование плотно связано с операционными системами. Начнём рассматривать программирование с написания программы под древнюю операционку MS-DOS. Углубляться в особенности не будем — всё достаточно коротко и ясно. Не пропускайте статей о создании кода в DOS, с них мы начнём рассматривать практические основы кодирования приложений для современных операционных систем Windows.