- •Учебно-методическое пособие
- •Оглавление
- •Введение
- •Глава 1. Основные понятия информатики
- •Понятие информатики
- •История развития информатики Этапы становления информатики
- •Правовые аспекты информатики
- •Понятие информации. Свойства и единицы измерения информации
- •Свойства информации
- •Способы измерения информации
- •1. Вероятностный подход
- •2. Объемный подход
- •Задания для выполнения
- •Вопросы для тестирования
- •Глава 2. Кодирование информации. Файловая система
- •Кодирование текста (таблицы кодирования)
- •Кодирование графики
- •1. Растровая графика.
- •2. Векторная графика.
- •Кодирование звука
- •Файловая система
- •Вопросы для тестирования
- •Глава 3. Системы счисления
- •Понятие системы счисления
- •Перевод целых чисел из одной системы счисления в другую делением на основание новой системы счисления
- •1. Из десятичной в двоичную систему счисления.
- •2. Из десятичной в шестнадцатеричную систему счисления
- •3. Из десятичной в восьмеричную систему счисления
- •Сложение и вычитание в системах счисления с основанием 2, 8, 16
- •Задания для выполнения
- •Вопросы для тестирования
- •Глава 4. Алгоритмизация и программирование
- •Понятие алгоритма
- •Способы представления алгоритмов
- •1. Графическое представление в виде блок-схемы
- •2. Представление алгоритма на алгоритмическом языке
- •Свойства алгоритма
- •Развитие методологии разработки программ
- •Вопросы для тестирования
- •Глава 5. Моделирование и формализация
- •Понятие моделирования и модели
- •Классификация моделей по способу воспроизведения свойств оригинала
- •Другие виды классификации моделей
- •Применение моделирования
- •Вопросы для тестирования
- •Глава 6. Программные средства реализации информационных процессов
- •Операционная система
- •Операционные системы корпорации microsoft
- •Альтернативные операционные системы
- •Утилиты
- •Системы программирования
- •Уровни языков программирования
- •Вопросы для тестирования
- •Глава 7. Аппаратные средства реализации информационных процессов
- •Классическая архитектура эвм и принципы фон Неймана
- •Шинная архитектура эвм
- •Платформы современных компьютеров
- •Процессор
- •Запоминающие устройства
- •Устройства внутренней памяти
- •Устройства внешней памяти
- •Устройства ввода/вывода данных Устройства вывода
- •Устройства вывода
- •Устройства управления
- •Устройство связи и передачи данных
- •Понятие вычислительной системы
- •Вопросы для тестирования
- •Глава 8. Локальные и глобальные сети
- •Аппаратные средства реализации локальных сетей
- •Программные средства реализации локальных сетей
- •Протоколы
- •Семиуровневая модель межсетевого взаимодействия iso/osi
- •Программные средства
- •Устройство Интернета
- •Серверы. Доменные зоны
- •Сайты и их адреса
- •Поисковые системы
- •Электронная почта
- •Основы компьютерной безопасности. Компьютерные вирусы и борьба с ними
- •Понятие и виды компьютерных вирусов
- •Средства антивирусной защиты
- •Вопросы для тестирования
- •Литература
- •Приложение 1
- •Учебно-методическое пособие
-
Уровни языков программирования
Как известно, алгоритм – последовательность предписаний, выполнив которые, за конечное число шагов можно перейти от исходных данных к конечному результату. В зависимости от степени детализации предписаний определяется уровень языка программирования. Чем меньше детализация – тем выше уровень языка.
По этому критерию выделяются уровни языков программирования:
-
машинные;
-
машинно-ориентированные (языки ассемблера);
-
машинно-независимые (языки высокого уровня).
Машинные и машинно-ориентированные языки – это языки низкого уровня, требующие указания мелких деталей процесса обработки данных.
Машинный язык – каждый компьютер имеет свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и т.д.
При программировании на машинном языке программист должен держать под контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций. Процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
Язык ассемблера – система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде.
Он позволяет программисту пользоваться текстовыми мнемоническими (т.е. легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и т.д.
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая называется ассемблером и является, по сути, простейшим транслятором.
Языки высокого уровня – имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
-
Процедурные (алгоритмические), например Basic, Pascal, C, которые предназначены для однозначного описания алгоритмов. Для решения задачи процедурные языки требуют в той или иной форме явно выписать процедуру ее решения.
-
Логические, например Prolog. Программа на этих языках не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики. Эти языки предназначены для решения не вычислительных или графических задач, а для решения логических задач, для моделирования процесса логического умозаключения человека. Языки логического типа можно отнести к языкам сверхвысокого уровня. В некоторых проектах создания компьютеров 5 поколения (обладающих искусственным интеллектом) логический язык планируется заложить в основу аппаратной реализации и программного обеспечения. На языках такого типа рассматриваются отношения между объектами, правила взаимосвязи объектов.
-
Функциональные, например Lisp.
-
Объектно-ориентированные, например Delphi, C++, Java, Object Pascal, в основе которых лежит понятие объекта, сочетающего в себе данные и действия над ними.
Основные преимущества машинно-независимых языков перед машинными:
-
значительно шире алфавит, что существенно повышает наглядность текста программы;
-
набор операций не зависит от набора машинных операций, а выбирается из соображений удобства для реализации алгоритма;
-
требуемые операции задаются с помощью общепринятых математических обозначений;
-
гибкий формат предложений;
-
имена для данных выбираются программистом;
-
значительно более широкий набор типов данных.
Таким образом, машинно-независимые языки облегчают работу программиста и повышают надежность создаваемых программ.
Компоненты машинно-независимого языка.
Алфавит – фиксированный набор символов, которые можно использовать при написании программы.
Синтаксис – правила построения фраз, т.е. это набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика – определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка.