Что такое система программирования назовите классы систем программирования
Перейти к содержимому

Что такое система программирования назовите классы систем программирования

  • автор:

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

Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и их эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.

Система программирования включает следующие программные модули:

Текстовые редакторы, служащие для создания текстов исходных программ.

Компиляторы, предназначенные для перевода исходного текста на входном языке в язык машинных кодов.

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

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

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

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

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

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

Выделяют два вида трансляторов: интерпретаторы и компиляторы.

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

Существует два основных недостатка метода интерпретации:

1) Интерпретирующая программа должна располагаться в памяти ЭВМ на протяжении всего процесса выполнения исходной программы. Другими словами, она должна занимать некоторый установленный объем памяти;

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

Трансляторы-интерпретаторы являются достаточно распространенными, так как они поддерживают диалоговый режим.

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

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

Процессы трансляции и выполнения при компиляции разделяются во времени: сначала исходная программа в полном объеме переводится на машинный язык, после чего оттранслированная программа может многократно исполняться. Для трансляции методом компиляции необходим неоднократный «просмотр» транслируемой программы, т. е. трансляторы — компиляторы являются многопроходными. Трансляция методом компиляции носит название объектного модуля, который представляет собой эквивалентную программу в машинных кодах. Необходимо, чтобы перед исполнением объектный модуль обрабатывался специальной программой ОС и преобразовывался в загрузочный модуль.

Применяют также трансляторы интерпретаторы-компиляторы, объединяющие в себе достоинства обоих принципов трансляции.

Большинство современных компиляторов работают в режиме трансляции.

Основные блоки (фазы) компилятора, их функции

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

В процессе компиляции можно выделить следующие подпроцессы (блоки, этапы).

1. Лексический анализ.

2. Работа с таблицами.

3. Синтаксический анализ, или разбор.

4. Генерация кода, или трансляция в промежуточный код (например, языка ассемблер).

5. Оптимизация кода.

6. Генерация объектного кода.

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

Лексический анализ

Входом является цепочка символов некоторого алфавита.

Некоторые комбинации символов в программе рассматриваются как единые объекты – лексемы (например, зарезервированные слова, идентификаторы, числовые константы).

Работа лексического анализатора состоит в том, чтобы сгруппировать определенные символы в единые синтаксические объекты – лексемы.

Выходом является последовательность лексем.

Работа с таблицами

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

Синтаксический анализ

Вход – цепочка лексем.

На этом этапе исследуется цепочка лексем и устанавливается, удовлетворяет ли она структурным условиям, явно сформулированным в определении синтаксиса языка.

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

Генерация кода

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

Замечание. На практике чаще одновременно строится и дерево, и код.

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

На двух этапах – синтаксического разбора и в начале этапа подготовки к генерации кода – выполняется семантический анализ . Семантический анализатор проверяет семантические соглашения входного языка, проверяет элементарные семантические (смысловые) нормы языков программирования, напрямую не связанных с входным языком; дополняет внутреннее представление программы в компиляторе операторами и действиями, неявно предусмотренными семантикой входного языка.

Оптимизация кода

Попытка сделать объектные программы более эффективными (т.е. быстрее работающими или более компактными).

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

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

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

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

Генерация объектного кода

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

В некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код » виртуальной машины «, также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java , Perl, Python, а также в языках платформы Microsoft .NET.

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

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

Синтаксис и семантика

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

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).

Пример синтаксической ошибки: употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.

Синтаксические ошибки распознаются встроенным синтаксическим анализатором.

Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.

Семантика – определяет смысловое значение предложений алгоритмического языка.

Классы систем программирования (СП)

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

в открытую систему можно ввести новый входной язык с трансля­тором, не требуя изменений в системе;

в интерпретирующей системе осуществляется покомандная рас­шифровка и выполнение инструкций входного языка (в среде данной системы программирования); в компилирующей — подготовка резуль­тирующего модуля, который может выполняться на ЭВМ практически независимо от среды.

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


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

текстовых редакторов и в виде текстового файла или разде­ла библиотеки поступает на вход транслятора.

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

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

Директивы препроцессора представляют собой помеченные спец­символами (обычно %, #, &) строки, содержащие аббревиатуры или другие символические обозначения конструкций, включаемых в состав исходной программы перед ее обработкой компилятором.

Данные для расширения исходного текста могут быть стандартны­ми, определяться пользователем либо содержаться в системных библио­теках ОС.

Компиляция — в общем случае многоступенчатый процесс, вклю­чающий следующие фазы:

синтаксический анализ — проверка правильности конструкций, ис­пользованных программистом при подготовке текста;

семантический анализ — выявление несоответствий типов и струк­тур переменных, функций и процедур;

генерация объектного кода — завершающая фаза трансляции.

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

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

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

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

Загрузка программы. Загрузочный модуль после сборки либо по­мещается в качестве раздела в пользовательскую библиотеку программ, либо в качестве последовательного файла на накопителе на магнитном диске (НМД). Выполнение модуля состоит в загрузке его в оперативную память, настройке по месту в памяти и передаче ему управления. Образ загрузочного модуля в памяти называется абсолютным модулем, по­скольку все команды ЭВМ здесь приобретают окончательную форму и получают абсолютные адреса в памяти. Формирование абсолютного модуля может осуществляться как программно, путем обработки ко­мандных кодов модуля программой-загрузчиком, так и аппаратно, пу­тем применения индексирования и базирования команд загрузочного модуля и приведения указанных в них относительных адресов к абсо­лютной форме.

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Системы программирования

Составление исходного кода программы на языке про­граммирования.

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

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

Совокупность этих программных средств входит в состав систе­мы программирования:

Текстовый редактор (необходимый для создания и редактирова­ния исходного кода программы на языке программирования).

Классификация и обзор языков программирования

Современное состояние языков программирования можно пред­ставить в виде следующей классификации (рис. 1).

Рис. 1. Классификация языков программирования

Процедурное программирование

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

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

Одним из первых процедурных языков программирования высокого уровня стал Фортран (FORmula TRANslation), созданный и начале 50-х гг. в США фирмой IBM. Первая публикация о нем появилась в 1954 г. Основное назначение языка – программирование научно-тех­нических задач. Объектами языка являются целые и вещественные числа и числовые переменные. Выражения в нем формируются с помощью четырех арифметических действий: возведения в степень, логических операций И, ИЛИ, НЕ, операций отношения и круглых скобок. Основные операторы Фортрана – ввод, вывод, присваива­ние, условный и безусловный переход, цикл, вызов подпрограмм. Долгие годы он был одним из самых распространенных языков в мире. За это время накоплена огромная библиотека программ, на­писанных на Фортране. И сейчас ведутся работы над очередным стандартом Фортрана. Многие средства Фортрана исполь­зованы в языках PL-1 и Бейсик.

Кобол (COmmon Business Oriented Language – общепринятый де­ловой язык) — язык программирования, ориентированный на реше­ние задач обработки данных. Широко используется для решения учетно-экономических и управленческих задач. Разработан в США в 1958—1960 гг. Программа на Коболе имеет вид ряда предложений на английском языке и напоминает обычный текст. Группы после­довательно записанных операторов объединяются в предложения, предложения — в параграфы, параграфы — в секции. Программист присваивает параграфам и секциям имена (метки), что облегчает непосредственное обращение к нужному участку программы. В СССР был принят русский вариант языка. В Коболе были реализованы мощные средства работы с большими объемами данных, хранящи­мися на различных внешних носителях. На этом языке создано много приложений, некоторые из них активно эксплуатируются и сейчас. Достаточно сказать, что одной из высокооплачиваемых категорией граждан в США являются программисты на Коболе.

Алгол (AZGOrithmic Language) разработан группой зарубежных специалистов в 1960 г., явился результатом международного сотруд­ничества конца 50-х гг. (Алгол-60). Алгол предназначался для запи­си алгоритмов, построенных в виде последовательности процедур, применяемых при решении поставленных задач. Специалисты-прак­тики воспринимали этот язык неоднозначно, но тем не менее, он как признанный международный язык сыграл большую роль в становлении основных понятий программирования и для обучения про­граммистов. В нем впервые введены понятия «блочная структура программы», «динамическое распределение памяти». Внутри блока в Алголе можно вводить локальные обозначения, которые не зависят от остальной части программы. Несмотря на свое интернациональ­ное происхождение, Алгол-60 подучил меньшее распространение, чем Фортран. Например, не на всех зарубежных ЭВМ имелись трансля­торы с Алгола-60. В 1968 г. в результате дальнейшего развития и усо­вершенствования Алгола-60 была создана версия Алгол-68. Это мно­гоцелевой универсальный расширенный язык программирования. Последнее свойство позволяло с помощью одной и той же програм­мы транслятора осуществлять трансляцию с различных расширенных версий языка без дополнительных затрат на приспособление этого языка к различным категориям пользователей, на получение про­блемно-ориентированных диалектов языка. По своим возможностям Алгол-68 и сегодня опережает многие языки программирования, од­нако из-за отсутствия эффективных компьютеров для него не уда­лось своевременно создать хорошие компиляторы. В нашей стране в те годы под руководством академика Андрея Петровича Ершова был создан транслятор Альфа, который представлял достаточно удачную русифицированную версию Алгола.

В середине 60-х гг. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специали­зированный язык программирования, который состоял из простых английских слов. Новый язык назвали универсальным символическим кодом для начинающих (Beginners All-purpose Symbolic Instruction Code) или сокращенно BASIC (Бейсик). 1964 г. считают годом рождения этого языка. Он получил самое широкое распространение при рабо­те на персональных компьютерах в режиме интерактивного диалога. Популярность Бейсика объясняется как простотой его освоения, так и наличием достаточно мощных универсальных средств, пригодных для решения научных, технических и экономических задач, а также задач бытового характера, игровых и т.д. Согласно концепциям, за­ложенным в Бейсике, в нем широко распространены различные пра­вила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа. Возникло множество версий язы­ка, зачастую мало совместимых друг с другом. Однако, зная одну из версий, можно без особого труда освоить любую другую. Бейсик ак­тивно поглощает многие концепции и новинки из других языков. Первоначально интерактивный режим осуществлялся с использова­нием интерпретатора, в настоящее время для этого языка имеются также и компиляторы.

В начале 60-х гг. каждый из существующих языков программи­рования был ориентирован на разные классы задач, но в той или иной мере привязан к конкретной архитектуре ЭВМ. Были предпри­няты попытки преодолеть этот недостаток путем создания универ­сального языка программирования. ПЛ/1 (PL/1 – Programming Language One) — первый многоцелевой универсальный язык, разра­ботан в США фирмой IBM в 1963—1966 гг. Это один из наиболее рас­пространенных универсальных языков, он хорошо приспособлен для решения задач в области вычислительной техники: исследования и планирования вычислительных процессов, моделирования, решения логических задач и исследования логических схем, разработки сис­тем математического обеспечения. При разработке PL/1 были ши­роко использованы основные понятия и средства языков Фортран, Алгол-60, Кобол. PL/1 – богатый и гибкий язык, дает возможность производить вставки, исправлять текст программы в процессе ее от­ладки. Язык получил широкое распространение, трансляторы с него имеются для многих типов компьютеров. Компания IBM и сегодня продолжает поддерживать этот язык.

Паскаль (Pascal) является одним из наиболее популярных про­цедурных языков программирования, особенно для персональных компьютеров. Созданный как учебный язык программирования в 1968—1971 гг. Никлаусом Виртом в Высшей технической школе в Цюрихе (Швейцария), он был назван в честь французского ма­тематика и философа Блеза Паскаля (1623—1662). Целью работы Н. Вирта было создание языка, который

строился бы на небольшом количестве базовых понятий;

имел простой синтаксис;

допускал перевод программ в машинный код простым компиля­тором.

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

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

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

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

Период с конца 60-х до начала 80-х гг. характеризуется бурным ростом числа различных языков программирования, сопровождав­шим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особенно остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок среди бесчислен­ного множества трансляторов и создал комитет для разработки од­ного универсального языка. На конкурсной основе комитет рассмот­рел сотни проектов и выяснил, что ни один из существующих языков не может удовлетворить их требованиям, для окончательного рас­смотрения было оставлено два проекта. В мае 1979 г. был объявлен победитель – группа ученых во главе с Жаном Ихбиа. Победивший язык назвали АДА, в честь Ады Лавлейс, дочери великого поэта Бай­рона. Она в юности была увлечена идеями Чарльза Бэббиджа и по­могала ему составлять описание машины, а в начале 40-х гг. ХIХ в. разработала первую в мире программу для вычислительной машины. Язык АДА – прямой наследник Паскаля. Он предназначен для со­здания и длительного сопровождения больших программных систем, управления процессами в реальном масштабе времени. В языке чет­ко выражена модульность его конструкций, причем обеспечивается удобство организации разнообразных связей между модулями. Важ­ным его достоинством является возможность параллельного програм­мирования ветвей программы, которые затем могут реализоваться на многопроцессорных компьютерах. Язык АДА сложен для изу­чения.

Язык программирования С (Си)был разработан в лаборатории Bell для реализации операционной системы UNIX в начале 70-х гг. и не рассматривался как массовый. Он планировался для замены Ассемблера, чтобы иметь возможность создавать столь же эффектив­ные и компактные программы, и в то же время не зависеть от конк­ретного типа процессора. В Си сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и струк­тур данных с возможностями прямого доступа к аппаратным сред­ствам компьютера. Синтаксис языка Си обеспечивает краткость про­граммы, его компиляторы генерируют эффективный объектный код. Одна из наиболее существенных особенностей Си состоит в том, что различия между выражениями и операторами нивелируются, это при­ближает его к функциональным языкам. Например, выражение мо­жет обладать побочным эффектом присваивания, а также может ис­пользоваться в качестве оператора. Нет четкого различия между процедурами и функциями, более того, понятие процедуры вообще не вводится. Синтаксис языка затрудняет программирование и вос­приятие составленных программ. Отсутствует строгая типизация дан­ных, что предоставляет дополнительные возможности программис­ту, но не способствует созданию надежных программ. Язык Си приобрел большую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован для боль­шинства компьютерных платформ.

Системы программирования. Прикладное программное обеспечение

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

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

Получите невероятные возможности

Конспект урока «Системы программирования. Прикладное программное обеспечение»

На прошлых уроках мы узнали:

· Программное обеспечение – это все программы, которые предназначены для выполнения на компьютере.

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

· К системному программному обеспечению относится операционная система и сервисные программы, которые обеспечивают работу компьютера.

· Прикладное программное обеспечение.

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

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

Самый первый язык программирования назывался Plankalkül (Планкалкюль) – такое сложное немецкое название раскладывается на две простые составляющие: план и калькуляция, то есть – исчисление планов. Планкалкюль был придуман в период 1943–1945 гг. немецким учёным Конрадом Цузе как средство программирования для компьютера Z4. Однако из-за второй мировой войны он так и не был реализован.

До 50-х годов всё ещё использовались машинные коды. Команды машинных кодов для разных процессоров были разными. Для использования таких кодов нужно было хорошо знать устройство компьютера и особенности его процессора. Потому компьютеры всё ещё были недоступны большинству людей.

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

В середине 50-х годов был реализован первый язык высокого уровня Fortran (Фортран). Сейчас большинство программ пишется именно на языках высокого уровня. Языки высокого уровня получили такое название, потому что многие команды в них записываются словами естественного разговорного языка, и сам язык имитирует разговорный. Программисту стало гораздо проще понимать и изучать язык программирования. Эти языки не привязаны к конкретным процессорам или другому оборудованию. Одна и та же программа, написанная на них выглядит одинаково для всех моделей компьютеров.

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

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

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

Программы на языках программирования можно записать на любом материальном носителе, даже на бумаге. Однако для того, чтобы компьютер выполнил программу, её нужно задать. Последовательность команд, из которых состоит программа, записанная на языке программирования – это исходный код программы. Компьютер переводит исходный код программы в машинные коды, проверяет его правильность. Если нужно, он указывает программисту ошибки в программе. Это происходит благодаря системам программирования. Так называется совокупность программ, которая предназначена для разработки программного обеспечения на языке программирования.

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

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

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

· Текстовые редакторы предназначены для создания и обработки текстовой информации. Некоторые из них поставляются в комплекте с операционной системой Windows. Например Блокнот и WordPad. Так же популярны бесплатный текстовый редактор для Windows NotePad++ и кроссплатформенный Vim.

· Графические редакторы нужны для обработки изображений. Они бывают растровые и векторные. Растровые графические редакторы заносят изображение в память компьютера как множество точек. Векторные графические редакторы воспринимают изображение как набор геометрических фигур. Популярные растровые графические редакторы – это платный редактор Adobe Photoshop и бесплатный Gimp. С операционной системой Windows поставляется редактор Paint. Наиболее популярные векторные графические редакторы – это коммерческий CorelDRAW и бесплатный Inkscape.

· Мультимедийные проигрыватели воспроизводят звук, анимацию и видео. В комплекте с операционной системой виндоус поставляется проигрыватель Windows Media. Широко распространён кроссплатформенный бесплатный проигрыватель MPlayer.

Ещё к приложениям общего назначения относятся:

· электронные таблицы, для автоматизации расчётов,

· системы управления базами данных.

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

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

Популярные офисные пакеты: коммерческий MicrosoftOffice для Windows и бесплатные кроссплатформенные OpenOffice и LibreOffice.

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

· Издательские системы. С их помощью создают макеты печатной продукции.

· Бухгалтерские системы для учёта денег в организациях.

· Математические пакеты для выполнения сложных расчётов.

· Различные экспертные системы и справочники для поиска профессиональной информации.

· Системы автоматизированного проектирования для работы с чертежами.

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

· Образовательные приложения и системы автоматического тестирования.

Важно запомнить:

· Языки программирования – это формальные языки, предназначенные для создания компьютерных программ.

· Система программирования – это совокупность программ, предназначенная для разработки программного обеспечения на языке программирования.

· В систему программирования входят: встроенный текстовый редактор, библиотека встроенных функций и процедур, компилятор или интерпретатор и отладчик.

· Приложения (прикладное программное обеспечение) – это программы для обработки информации без использования программирования.

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *