Из каких простейших элементов состоит программа кратко

Обновлено: 08.07.2024

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

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

Презентацию к лекции Вы можете скачать здесь.

Программа на языке С++ состоит из функций, описаний и директив препроцессора . О директивах мы говорили выше. Функция - это законченный фрагмент кода, к которому можно обратиться по имени (вызвать функцию). Функция может получать аргументы и возвращать в вызывающий код вычисленное в ней значение . Например, вызов функции , вычисляющей синус угла, может выглядеть примерно так же, как в математике: y = sin(x);.

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

Описания представляют собой определения и объявления элементов программы: переменных, функций , классов, типов и т. д. Любой элемент программы должен быть определен только один раз. Это правило в стандарте называется правилом одного определения ( one definition rule , или odr ) . Объявление может встречаться в программе столько раз, сколько необходимо.

Такие требования естественны: ведь определения требуют от компилятора конкретных действий (например, выделения памяти), а объявления служат для информации.

Итак, программа , состоящая из одного модуля, имеет следующую структуру:

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

Переменные

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

Перед использованием любая переменная должна быть определена. Пример описания целой переменной с именем a и вещественной переменной: x

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

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

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

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

Время жизни глобальных и локальных переменных отличается: глобальная переменная "живет", пока работает программа , а локальная - только до конца блока.

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

Рассмотрим общий вид оператора описания переменных :

Начнем с инициализатора . С его помощью можно присвоить переменной начальное значение ( инициализировать переменную ) . Инициализатор можно записывать в двух формах - со знаком равенства:

или в круглых скобках:

Выражение должно быть вычисляемым на момент выполнения оператора, например:

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

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

В одном операторе можно определить несколько величин одного типа, разделяя их запятыми. Примеры:

Класс памяти задается явным образом или по контексту описания переменной. Если он не задан явно, и переменная описана внутри блока (в частности, внутри функции main ), она считается автоматической. Память под нее выделяется при входе в блок и при необходимости инициализируется каждый раз при выполнении оператора, содержащего ее определение . Освобождение памяти происходит при выходе из блока, в котором описана переменная . Иными словами, сколько раз выполняется блок, столько раз "рождается" и "умирает" локальная переменная . Время ее жизни - с момента входа в блок и до выхода из блока.

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

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

Спецификатор extern может задаваться и в определении переменной, но при этом переменная обязательно должна быть проинициализирована, например:

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

Здесь глобальная переменная a определена вне всех блоков, областью ее действия является вся программа . Переменная создается при запуске программы и уничтожается при окончании ее работы. Область видимости переменной - вся программа , кроме строк 6-10, так как в первой из них определяется локальная переменная с тем же именем, область действия которой начинается с точки ее описания и заканчивается при выходе из блока.

Переменные b и c - локальные, область их видимости (и действия) - блок, но время жизни различно: переменная b "рождается" при входе в блок и "умирает" при выходе из него, а переменная c , как и глобальная переменная a , создается при запуске программы и существует все время, пока работает программа .

Переменная х является глобальной и определена после тела функции main . Область действия - вся программа , однако выше точки определения переменная не видна. Чтобы иметь к ней доступ внутри тела функции , переменная объявлена как extern (строка 9).

Если при определении переменных их начальные значения явным образом не заданы, глобальные и статические переменные инициализируются по умолчанию нулевым значением соответствующего типа. Автоматические (локальные) переменные не инициализируются.

Элементы программы - это минимальные неделимые ее части, еще несущие в себе определенную значимость для компилятора. К элементам относятся:

  • зарезервированные слова;
  • идентификаторы;
  • типы;
  • константы;
  • переменные;
  • метки;
  • подпрограммы;
  • комментарии.


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


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


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


Константы определяют области памяти, которые не могут изменять своего значения в ходе работы программы. Как и любые другие элементы программы, константы могут иметь свои собственные имена. Объявлению имен констант должно предшествовать зарезервированное слово const (от англ. constants - константы). Например, мы можем определить константы const

чтобы вместо длинных чисел

1048576 (1024*1024) и 1073741824

(1024*1024*1024) писать, соответственно, Mbyte и Gbyte. Тип константы определяется способом ее записи и легко распознается компилятором в тексте программы, поэтому программист может не использовать именованные константы (т. е. не объявлять их в программе явно).

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

var
inValue: Integer;

Здесь идентификатор inValue объявляется как переменная типа integer, а идентификатор byValue - как переменная типа Byte. Стандартный (т. е. заранее определенный в Object Pascal) тип integer определяет четырехбайтный участок памяти, содержимое которого рассматривается как целое число в диапазоне от -2 147 483 648 до+2 147 483 647, а стандартный тип Byte - участок памяти длиной 1 байт, в котором размещается беззнаковое целое число в диапазоне от 0 до 255 4 .[ Все приводимые в книге сведения относительно диапазона возможных значений и объема памяти стандартных типов относятся к Delphi 32. Для 16-разрядной версии 1 эти величины имеют другие значения, например, тип Integer в версии 1 занимает 2 банта и имеет диапазон значении от -32 768 до+32 767. ]

Метки - это имена операторов программы. Метки используются очень редко и только для того, чтобы программист смог указать компилятору, какой оператор программы должен выполнятся следующим. Метки, как и переменные, всегда объявляются в программе. Разделу объявлений меток предшествует зарезервированное слово label (метка). Например:




label
Loop;
begin
Goto Loop;
// Программист требует передать управление
// оператору, помеченному меткой Loop. .
// Эти операторы будут пропущены
Loор:
// Оператору, идущему за этой меткой,
.
// будет передано управление
end;

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

В Object Pascal есть два сорта подпрограмм: процедуры и функции. Функция отличается от процедуры только тем, что ее идентификатор можно наряду с константами и переменными использовать в выражениях, т. к. функция имеет выходной результат определенного типа. Если, например, определена функция

FunctionMyFunction: Integer;


и переменная var


то возможен такой оператор присваивания:


Имя процедуры нельзя использовать в выражении, т. к. процедура не имеет связанного с нею результата:


X := 2*MyProcedure-l; // Ошибка!

Типы

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

Строковый и символьный типы

Свое знакомство с типами мы начнем со строкового типа String. Этот тип определяет участок памяти переменной длины, каждый байт которого содержит один символ. Для символов в Object Pascal используется тип Char, таким образом, String - это цепочка следующих друг за другом символов Char. Каждый символ в String пронумерован, причем первый символ имеет номер 1. Программист может обращаться к любому символу строки, указывая его порядковый номер в квадратных скобках сразу за именем переменной:

var // Начало раздела описания переменных
S: String;
// Объявление переменной строкового типа
begin
// Начало раздела исполняемых операторов
S := ' Строка символов';
// Переменная S содержит
// значение "Строка символов"
S[6] := 'и'; // Теперь переменная содержит значение
// "Строки символов"
end;
// Конец раздела исполняемых операторов

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

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

В первом операторе присваивания в переменную s будет помещено значение строковой константы строка символов'. Строковые константы содержат произвольные символы, заключенные в обрамляющие апострофы, причем сами апострофы не входят в значение константы, поэтому после присваивания переменная примет значение Строка символов без апострофов (если понадобится включить в текстовую константу апостроф, он удваивается: ' символ ' ' - апостроф'). После первого присваивания s будет занимать участок памяти длиной 15 байт - по одному байту на каждый символ значения [ На самом деле переменная строкового типа всегда имеет длину 4 байта, которые используются для указания на область памяти, в которой помещается сама строка символов. Подробнее о механизме использования памяти строковыми переменными см. п. 6.3.1. ]. Переменность размера области памяти, выделяемой для размещения строки символов, - характерная особенность типа string. Если бы, например, во втором операторе мы обратились не к 6-му по счету символу, а ко всей строке в целом:

эта переменная стала бы занимать 1 байт, а следующие за ним 14 байтов оказались бы свободными. Длина строковой переменной в программе меняется автоматически при каждом присваивании переменной нового значения и может составлять от 0 до 2 Гбайт [ Для версии Delphi 1 тип String соответствует 'короткой' строке, длина которой не может превышать 255 байт. ]. Над строковым типом определена операция сцепления (+):

  • Компью́терная програ́мма — 1) комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления (стандарт ISO/IEC/IEEE 24765:2010); 2) синтаксическая единица, которая соответствует правилам определённого языка программирования, состоящая из определений и операторов или инструкций, необходимых для определённой функции, задачи или решения проблемы (стандарт ISO/IEC 2382-1:1993).

Другие определения из нормативных документов:

Программа — данные, предназначенные для управления конкретными компонентами системы обработки данных в целях реализации определённого алгоритма (ГОСТ 19781—90).

Связанные понятия

Ути́ли́та (англ. utility) — вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы (ОС).

Библиоте́ка (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

Интерфе́йс по́льзователя, он же по́льзовательский интерфейс (UI — англ. user interface) — интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы (ISO/IEC/IEEE 24765-2010).

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

Упоминания в литературе

World wide web – всемирная паутина или Web является одним из наиболее популярных и удобных для работы ресурсов Интернета. WWW обладает широкими возможностями, унифицируя и связывая воедино всю информацию, хранящуюся в Интернете в форме текстов, изображений и звукового сопровождения. Использование Web предполагает создание Web-серверов, предназначенных для хранения и передачи различных документов, изображений, компьютерных программ и т.д., что может быть предоставлено в виде компьютерного файла. Находящиеся на Web-серверах файлы называют страницами.

В это же время начинается интенсивное проникновение информационных технологий в системы управления предприятий. С появлением компьютерных программ для бизнес-приложений, стало очевидно, что коммуникационный разрыв, который существовал между программистами и бизнесменами должен быть преодолен. Представители бизнес-сообщества требовали от программистов окончательного решения своих практических проблем. В этих целях было принято решение разработать обучающий курс, в котором бы объединялись информационные технологии, бизнес и компьютерное программирование. Это направление получило название информационные системы управления[41]. Тогда, главная проблема заключалась в преодолении коммуникационных препятствий и технических проблем между целями и задачами руководителей предприятий и программистов.

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

Связанные понятия (продолжение)

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

Интерфе́йс (от англ. interface) — общая граница между двумя функциональными объектами, требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т.д.) между элементами системы.

Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами.

Синхронизация (от др.-греч. σύγχρονος — одновременный) в информатике обозначает одно из: синхронизацию процессов, либо синхронизацию данных, либо процесс синхронизации передачи данных.

Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений. Также называется графической оболочкой управления.

Програ́ммное обеспе́чение (допустимо также произношение обеспече́ние) (ПО) — программа или множество программ, используемых для управления компьютером (ISO/IEC 26514:2008).

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

Отла́дчик (деба́ггер, англ. debugger от bug) — компьютерная программа, предназначенная для поиска ошибок в других программах, ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д.

Дизассе́мблер (от англ. disassembler ) — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера.

Текстовый пользовательский интерфейс, ТПИ (англ. Text user interface, TUI; также Character User Interface, CUI) — разновидность интерфейса пользователя, использующая при вводе-выводе и представлении информации исключительно набор буквенно-цифровых символов и символов псевдографики. Характеризуется малой требовательностью к ресурсам аппаратуры ввода-вывода (в частности, памяти) и высокой скоростью отображения информации. Появился на одном из начальных этапов развития вычислительной техники, при развитии.

Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.

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

Интерфейс командной строки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши. Также известен под названием консоль.

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

Отла́дка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится.

Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.

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

Проце́сс — программа, которая выполняется в текущий момент. Стандарт ISO 9000:2000 определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

Монтирование файловой системы — системный процесс, подготавливающий раздел диска к использованию операционной системой.

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница); также спецификация некоторой вычислительной среды (например.

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

Подсве́тка си́нтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний.

Де́мон (daemon, dæmon, др.-греч. δαίμων божество) — компьютерная программа в системах класса UNIX, запускаемая самой системой и работающая в фоновом режиме без прямого взаимодействия с пользователем.

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр.

Установка программного обеспечения, инсталляция — процесс установки программного обеспечения на компьютер конечного пользователя. Выполняется особой программой (пакетным менеджером), присутствующей в операционной системе (например, RPM, APT или dpkg в Linux, Установщик Windows в Microsoft Windows), или же входящим в состав самого программного обеспечения средством установки. В операционной системе GNU очень распространено использование системы GNU toolchain и её аналогов для компиляции программного.

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

Файловый дескриптор — это неотрицательное целое число. Когда создается новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.

Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор.

Дамп памяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации.

Открытое программное обеспечение (англ. open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет убедиться в отсутствии уязвимостей и неприемлемого для пользователя функционала (к примеру, скрытого слежения за пользователем программы), принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода.

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

Элеме́нт интерфе́йса — примитив графического интерфейса пользователя, имеющий стандартный внешний вид и выполняющий стандартные действия.

Объе́ктный мо́дуль (также — объектный файл, англ. object file) — файл с промежуточным представлением отдельного модуля программы, полученный в результате обработки исходного кода компилятором. Объектный файл содержит в себе особым образом подготовленный код (часто называемый двоичным или бинарным), который может быть объединён с другими объектными файлами при помощи редактора связей (компоновщика) для получения готового исполнимого модуля либо библиотеки.

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

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

Упоминания в литературе (продолжение)

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

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

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

Автоматизированные компьютерные технологии обучения. Название технологии обучения устаревшее, но положившее начало дальнейшему активному применению компьютера в обучении. Период времени достаточно насыщен поиском разнообразных подходов, алгоритмов обучения и разработками компьютерных программ обучения и контроля. Появление персональных ЭВМ – компьютеров, значительно повлияло на становление и развитие компьютерных технологий обучения.

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

Программный код

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

Программа — это.

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

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

  1. одеться;
  2. взять деньги;
  3. выйти из дома;
  4. дойти до магазина;
  5. в магазине осуществить выбор нужных продуктов;
  6. вернуться домой.

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

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

Языки программирования

Для написания текстов используются тоже программы (среды разработки или специальные редакторы кода), которые поддерживают синтаксис языков (Visual Studio Code, Sublime Text, Eclipse и др.). Информацию о них легко найти в просторах интернета с помощью google, chrome и др. браузерами.

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

Существуют следующие языки:

  1. низкоуровневые (ассемблер, C++ и т.д.) — инструкции таких языков компьютер понимает лучше, так как они наиболее близки к машинному коду (состоящему из 0 и 1), а компьютер понимает только его;
  2. высокоуровневые (JavaScript, Python, Ruby и т.д.) — языки больше похожие на человеческий (в них есть много слов, чаще английских), такие языки предлагают больший уровень абстракции для взаимодействия между компьютером и человеком.

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

Виды компьютерных программ

Существует несколько видов программного обеспечения (ПО):

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

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

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

Эта статья относится к рубрикам:

Комментарии и отзывы (2)

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

Данную проблему можно решить за счёт использования языков программирования высокого уровня, именно они позволяют корректно работать программам на большинстве процессоров.

Обычная люстра — это тоже программа. Допустим, у нас есть выключатель состоящий из двух клавиш, эти две клавиши являются двумя битами информации, если обе клавиши стоят в позиции 00, свет не горит, если позиция 10, то горят две лампочки из пяти, если позиция 01, то горят три лампочки из пяти и позиция 11, в люстре горят все пять лампочек.

Читайте также: