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



Место естественных наук в деятельности человека. Этапы решения творческих задач.

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

Рис. 2. К вопросу о месте информатики в системе наук

Однако, многие ученые подчеркивают, что информатика имеет характерные черты и других групп наук – технических и гуманитарных (или общественных).

Черты технической науки придают информатике ее аспекты, связанные с созданием и функционированием машинных систем обработки информации. Так, академик А.А.Дородницын определяет состав информатики как “три неразрывно и существенно связанные части: технические средства, программные и алгоритмические”. Первоначальное наименовании школьного предмета “Основы информатики и вычислительной техники” в настоящее время изменено на “Информатика” (включающее в себя разделы, связанные с изучением технических. программных и алгоритмических средств). Науке информатике присущи и некоторые черты гуманитарной (общественной) науки, что обусловлено ее вкладом в развитие и совершенствование социальной сферы. Таким образом, информатика является комплексной, междисциплинарной отраслью научного знания, как это изображено на рис. 1.2.

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

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

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

б) эвристические методы. Например: мозговой штурм, массовая мозговая атака.

 

Информация: её определение, способы представления, хранения, передачи и обработки информации. Методологические аспекты.

Информация (от лат. informatio, разъяснение, изложение, осведомленность) — сведения о лицах, предметах, фактах, явлениях, процессах, событиях реального мира независимо от их представления.

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

В информатике

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

Работа с информацией связана с преобразованиями и всегда подтверждает её материальную природу. Она делится на 3 основных этапа: чтение, запись и хранение.

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

       Способы хранения: информация может храниться в виде файлов на жестком диске, но в основном она храниться в базе данных. База данных- это поименованная совокупность структурированных данных, относящихся к определенной предметной области. Различают реляционные и нереляционные БД. Реляционные постоены на основе древовидной структуры, доступ к ним осуществляется посредством запросов на языке SQL. Нереляционные, так называемые NoSQL БД построены на основе хранения информации в файлах. Единого стандарта языка зарпросов нет.

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

       Распределенная база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).

       Способы передачи информации: информацию можно передать словесно, написать на бумаге, но если рассматривать способы передачи с точки зрения информатики, то существуют следующие: CD, DVD диски (ранее дискета), flash-накопитель. Интернет (В основном протокол HTTP (англ. HyperText Transfer Prоtocоl — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.)  Передача информации на компьютер: диски, либо USB USB (ю-эс-би, англ. Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике. И ещё куча куча всего, но это основное.

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

 

       Компью́тер (англ. computer, — «вычислитель») — устройство или система, способное выполнять заданную, чётко определённую последовательность операций. Это чаще всего операции численных расчётов и манипулирования данными, однако сюда относятся и операции ввода-вывода. Описание последовательности операций называется программой. Электро́нная вычисли́тельная маши́на, ЭВМ — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач.

 

Основные принципы построения ЭВМ были сформулированы американским учёным Джоном фон Нейманом в 40-х годах 20 века:

1. Любую ЭВМ образуют три основные компоненты: процессор, память и устройства ввода-вывода (УВВ).

2. Информация, с которой работает ЭВМ делится на два типа:

    • набор команд по обработке (программы);
    • данные подлежащие обработке.

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

Контроль за доступом к данным в современных компьютерах осуществляется аппаратно.

 

3. И команды, и данные вводятся в память (ОЗУ) – принцип хранимой программы.

4. Руководит обработкой процессор, устройство управления (УУ) которого выбирает команды из ОЗУ и организует их выполнение, а арифметико-логическое устройство (АЛУ) проводит арифметические и логические операции над данными.

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

5. С процессором и ОЗУ связаны устройства ввода-вывода (УВВ).

Примеры устройств ввода-вывода. Ввода: клавиатура, мышь, сенсорная панель, графический планшет, CD/DVD ROM.... Вывода: Монитор, колонки, различные игровые устройства с обратной связью (Обра́тная связь (англ. feedback — «фидбэк» — «обратное питание») — в широком смысле означает отзыв, отклик, ответную реакцию на какое-либо действие или событие)

Поколения ЭВМ:

I ПОКОЛЕНИЕ II ПОКОЛЕНИЕ
Эл. база: Электронно-вакуумные лампы Быстродействие: 8 - 20 тыс. оп/с Програмное обеспечение: язык "Ассемблер" Названия: "МЭСМ", "БЭСМ", "Эниак" Эл. база: Полупровогдники (транзисторы, диоды) Быстродействие: 0,1 - 1 млн. оп/с Програмное обеспечение: транслятор и компилятор Названия: "БЭСМ-6", "Днепр-1"
III ПОКОЛЕНИЕ IV ПОКОЛЕНИЕ
Эл. база: Интегральные схемы (МИС, СИС) Быстродействие: 1 млн. оп/с Програмное обеспечение: языки высокого уровня ("Pascal", "Basic"); отладчики Названия: IBM 360/370, ЕСЭВМ Эл. база: Интегральные схемы (БИС, СБИС) Быстродействие: более 1 млн. оп/с Програмное обеспечение: объектно-ориентированные языки програмирования, програмные оболочки, различные редакторы. Названия: "МЭСМ", "БЭСМ", "Эниак"

V ПОКОЛЕНИЕ

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

Качественная характеристика аппаратуры и программ: ну собственно кратко об этом сказано в таблице выше: аппаратуры - в графе "электронная база", программ - в графе программное обеспечение.

Кодировка команд и данных. Бит, байт, полуслова, слова, двойные слова. Системы счисления, применяемые в ЭВМ (с основаниями 2, 8 и 16), представление данных и команд, действия с числами.

 

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

Кодовая таблица – это внутреннее преставление символов в компьютере. Во всем мире в качестве стандарта принята таблица ASCII – Американский стандартный код для обмена информацией. Для хранения двоичного кода одного символа выделен 1 байт = 8 бит.

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

Наиболее просто кодируется числовая информация – она переводится в двоичную систему исчисления.

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

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

Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7

ПОЛУСЛОВО

ПОЛУСЛОВО

ПОЛУСЛОВО

ПОЛУСЛОВО

СЛОВО

СЛОВО

ДВОЙНОЕ СЛОВО

Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт.

В современной информатике используются в основном три системы счисления (все – позиционные): двоичная, шестнадцатеричная и десятичная.

 

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

 

Шестнадцатеричная система счисления используется для кодирования дискретного сигнала, потребителем которого является хорошо подготовленный пользователь – специалист в области информатики. В такой форме представляется содержимое любого файла, затребованное через интегрированные оболочки операционной системы, например, средствами Norton Commander в случае MS DOS. Используемые знаки для представления числа – десятичные цифры от 0 до 9 и буквы латинского алфавита – A, B, C, D, E, F.

 

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

 

Соответствие между первыми несколькими натуральными числами всех трех систем счисления представлено в таблице перевода:

 

Десятичная система Двоичная система Шестнадцатеричная система
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
16 10000 10

Команды

В команде есть код операции и адресная часть:
Команда – это код, который показывает вид операции и в той или иной степени операнды, участвующие в операции, и результат. Чаще всего в форме не сами операнды, а их адреса в памяти ЭВМ.
Существуют ЭВМ с упрощенным (сокращенным) набором команд –

RISC(ReducedInstructionSetComputer) – машины. Всего ~ 100 команд. К ним можно отнести ЭВМ фирм Sun, Spark и др. Сложная компиляция, выполнение проще (УУ проще).
Существуют ЭВМ с расширенным набором команд – CISC(ComplexInstructionSetComputer)– машины. Всего ~ 1000 команд. К ним можно отнести Intel, IBM и др. Компиляция проще, выполнение сложнее (УУ сложнее).

Классификация команд
По функциональному назначению:

  • Команды пересылки данных

регистр « регистр

pежим DMA

регистр « память
регистр « I/O

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

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

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

Данные и программа. Система команд процессора. Форматы команд, система адресации. Понятие об архитектуре ЭВМ. Взаимодействие процессора, памяти и устройств ввода-вывода. Шинная организация архитектуры (шина данных и шина адреса), понятие о конвейерной организации.

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

 

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

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

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

В состав центрального процессора входят:

  • устройство управления (УУ);
  • арифметико-логическое устройство (АЛУ);
  • запоминающее устройство (ЗУ) на основе регистров процессорной памяти и кэш-памяти процессора;
  • генератор тактовой частоты (ГТЧ).

    Устройство управления организует процесс выполнения программ и координирует взаимодействие всех устройств ЭВМ во время её работы.

Арифметико-логическое устройство выполняет арифметические и логические операции над данными: сложение, вычитание, умножение, деление, сравнение и др.

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

Генератор тактовой частотыгенерирует электрические импульсы, синхронизирующие работу всех узлов компьютера. В ритме ГТЧ работает центральный процессор.

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

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

Форматы команд

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

 

 

КОП

А3

 

 

7

0

 

КОП

А1

А3

 

15  

6

5 0

КОП

А1

А2

А3

23 17 16 12 11 6 5 0
               

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

Главным элементом кода команды является код операции (КОП), что определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А1 и А2 v адреса операндов. А3 - адрес результата.

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

безадресные
одно-, двух-, трехадресные

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

Множество реализуемых машинных действий образует её систему команд. Система команд часто определяет области и эффективность применения ЭВМ. Состав и число команд должны быть ориентированы на стандартный набор операций, используемых пользователем для решения своих задач.

По функциональному назначению в системе команд ЭВМ различают следующие группы:

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

 

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

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

 

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

К архитектуре относятся следующие принципы построения ЭВМ:

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

Любую ЭВМ образуют три основные компоненты: процессор, память и устройства ввода-вывода (УВВ).

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

 

Ниже представлена схема устройства компьютера, построенного по магистральному принципу:

Объединение функциональных блоков в ЭВМ с шинной архитектурой осуществляется посредством следующей системы шин:

· шины данных, по которой осуществляется обмен информацией между блоками ЭВМ;

· шины адреса, используемой для передачи адресов (номеров ячеек памяти или портов ввода-вывода, к которым производится обращение);

· шины управления для передачи управляющих сигналов.


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

 

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

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

Простой пятиуровневый конвейер в RISC-процессорах

На иллюстрации справа показан простой пятиуровневый конвейер в RISC-процессорах. Здесь:

· IF (англ. Instruction Fetch) — получение инструкции,

· ID (англ. Instruction Decode) — раскодирование инструкции,

· EX (англ. Execute) — выполнение,

· MEM (англ. Memory access) — доступ к памяти,

· WB (англ. Register write back) — запись в регистр.

 

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

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

Таблица 1. Допустимые информационные нагрузки на человека-оператора

Виды и характеристики нагрузки Допустимые значения
Время занятости пользователя непосредственной работой с информационной моделью по отношению к общему времени работы, % 75
Количество сигналов, одновременно требующих внимания оператора (удержание их в памяти) 3
Количество одновременно запоминаемых сигналов (информационных признаков) 7
Скорость поступления информации, бит/с 4
Коэффициент очереди 0,4

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

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

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

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

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

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

Примеры: C++, C#, Java, JavaScript, Python, PHP, Ruby, Perl, Паскаль, Delphi, Лисп. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файловоговвода-вывода и т. п.

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 годах. Однако транслятора для него не существовало до 2000 года. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

 

Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских). Например: любой ассемблер.

История создания:

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

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

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

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

На протяжении 60-х годов запросы на разработку программного обеспечения возросли и программы стали очень большими. Люди начали понимать, что создание программного обеспечения — гораздо более сложная задача, чем они себе представляли. Это привело к тому, что было разработано структурное программирование. С развитием структурного программирования следующим достижением были процедуры и функции. К примеру, если есть задача, которая выполняется несколько раз, то её можно объявить как функцию или процедуру и в выполнении программы просто вызывать её. Общий код программы в данном случае становится меньше. Функции позволяют создавать модульные программы.

Следующим достижением было использование структур, благодаря которым перешли к классам. Структуры — это составные типы данных, построенные с использованием других типов. Например, структура время. В неё входит: часы, минуты, секунды. Программист мог создать структуру время и работать с ней, как с отдельной структурой. Класс — это структура, которая имеет свои переменные и функции, которые работают с этими переменными. Это было очень большое достижение в области программирования. Теперь программирование можно было разбить на классы и тестировать не всю программу, состоящую из 10’000 строк кода, а разбить программу на 100 классов, и тестировать каждый класс. Это существенно облегчило написание программного продукта.

Язык ассемблера

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

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

Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN - FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол(1958), Паскаль(1970), Си(1972).

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

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

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

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

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией,полиморфизмом

и наследованием.

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java и др.

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

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

Синтаксис языка - набор операторов, команд.

Семантика языка программирования - (programming language semantics). Совокупность правил, определяющих смысл чисел, переменных, выражений, операторов, процедур и других элементов и предложений данного языка программирования.

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

· Английские и русские буквы, которые могут быть как строчными, так и прописными.

· Арабские цифры.

· Знаки операций и знаки, входящие в составное обозначение операций:
+ - * / : = < >

· Ограничители:
. , ( ) [ ] { } : ; ‘ “

· Специальные символы:
$ @ # & ^ _ ~ %

 

 


Дата добавления: 2018-04-04; просмотров: 652; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!