
- •Введение
- •Тема 1. Понятия информация, информатика, информатизация
- •1.1. Понятие информация
- •1.2. Свойства информации
- •1.2.1. Прагматические (потребительские) показатели качества информации
- •1.2.2. Семантические (смысловые) и познавательные показатели
- •1.2.3. Синтаксические показатели
- •1.3. Классификация информации по разным признакам
- •1.4. Сообщения и сигналы
- •Структурная схема одноканальной системы передачи информации
- •1.5. Устройства связи
- •1.6. Кодирование
- •Общие законы кибернетики
- •1.8. Информатизация
- •Информатизация определяется как процесс практической реализации достижений информатики.
- •Тема 2. Структура и архитектура пэвм
- •2.1. История развития вычислительной техники
- •Механические первоисточники
- •Классификация эвм
- •Классификация эвм по поколениям
- •Классификация эвм по назначению (классы)
- •Надежность и отказоустойчивость
- •Масштабируемость
- •Совместимость и мобильность программного обеспечения
- •2.5. Структурная схема эвм
- •2.6. Состав и функции оборудования пк
- •I. Системный блок
- •Видеокарта. Видеоадаптер подключатся к материнсткой плате в виде дочерней платы. Имеются ускорители (аппаратное ускорение) для 3d, 2d - трехмерной и плоской графики.
- •Накопители (внешняя память)
- •Контроллеры ввода/вывода
- •Блок питания
- •II. Монитор
- •Оптимальное разрешение экрана монитора
- •III. Клавиатура
- •IV. Периферийные устройства
- •Принтеры
- •Средства мультимедиа
- •Тема 3. Программное обеспечение пэвм
- •3.1. Режимы работы программ
- •3.2. Классификация программного обеспечения
- •3.3. Операционные системы
- •Виды интерфейсов пользователя
- •Неграфические ос (ms dos версии 1.0 – 6.22). Управляющие команды вводятся в поле командной строки и завершаются нажатием клавиши Enter.
- •Обеспечение автоматического запуска
- •Организация файловой системы
- •Повышение надежности
- •Программа проверки системных файлов
- •Быстрая операционная система
- •Подключение новых устройств
- •Интеграция с Web
- •Основные принципы работы в Windows
- •Стандартный набор пиктограмм
- •1. Мой компьютер
- •2. Входящие
- •3. Корзина ( мусор )
- •4. Сетевое окружение
- •Содержимое главного меню
- •Утилиты Windows
- •Теоретические основы сжатия данных
- •Обратимость сжатия
- •Алгоритмы обратимых методов
- •Компьютерные вирусы и программные злоупотребления
- •3.5.1. Немного истории
- •3.5.2. Характеристика компьютерных вирусов
- •Характеристика антивирусных программ
- •Тема 4. Прикладное программное обеспечение пэвм
- •4.1. Классификация редакторов текстов
- •Редакторы текстов программ
- •Редакторы документов
- •Издательские системы
- •Текстовый процесссор Microsoft Word
- •Запуск Word
- •Выход из Word
- •Окно редактора Word
- •Режим просмотра документа (Вид)
- •Вычисляемые таблицы
- •Создание диаграмм по данным таблиц
- •Словари
- •Автотекст
- •Автозамена
- •Шаблоны
- •Формирование оглавления
- •4.2. Табличные процессоры
- •Запуск Excel
- •Завершение работы
- •Рабочее окно
- •Ввод данных
- •Форматы чисел
- •Редактирование
- •Создание линейных последовательностей
- •Скрыть данные
- •Защита данных
- •Работа с формулами
- •Вычисления с массивами
- •Использование функций
- •Сортировка данных
- •Фильтрация данных
- •Построение диаграмм
- •Оформление таблицы
- •Сводные таблицы
- •Тема 5. Алгоритм. Виды и свойства алгоритма. Языки программирования.
- •5.1. Алгоритм: определение, виды и свойства
- •5.2. Этапы решения задач на эвм
- •5.3. Краткая характеристика языков программирования
- •Общие замечания к интерпретаторам
- •Компиляция языков программирования
Общие замечания к интерпретаторам
Разработка интерпретаторов для интерпретации программ на заданном исходном языке является одной из основных задач информатики. Степень трудности проблемы реализации интерпретатора зависит от сложности исходного языка и степени его отличия от базисного языка, на котором должен быть записан сам интерпретатор.
Чтобы обеспечить корректность интерпретатора, при его проектировании мы должны исходить из семантического определения интерпретируемого языка или по меньшей мере верифицировать его на соответствие этому. Обратим внимание на то, что математическое определение семантики ЯП аналогично интерпретирующим программам.
Особое положение занимают интерактивные, инкрементальные (пошаговые) интерпретаторы. Для них не обязательно требуется сначала подготовить всю программу целиком, включая вводимые данные, и только потом ее интерпретировать. При интерактивной интерпретации можно программу и входные данные приготовить отдельными частями и полученную часть - насколько это возможно - тут же проинтерпретировать (ЯП ВASIC специально ориентирован на инкрементальную интерпретацию).
Сейчас все ближе подходят к созданию интерпретаторов для таких языков, которые выглядят не так, как классические ЯП, ориентированные на вычисления. В частности, в результате длительных исследований стала возможной интерпретация определенных языков, ориентированных скорее на спецификации, а не на вычисления (например, язык ПРОЛОГ, который служит для составления программ в машинно-интерпретируемой логике). Впрочем, для таких языков имеются определенные непреодолимые преграды из-за границ вычислимости и сложности, которые для многих постановок задач делают практически невозможным использование этих языков.
Компиляция языков программирования
Компилятор берет программу на исходном языке в качестве своих входных данных и вырабатывает программу на объектном языке, понятном машине.
Если программу, написанную на ЯП высокого уровня, мы хотим выполнять многократно, со все новыми исходными данными, то часто бывает эффективнее программу не интерпретировать, а сначала перевести на уже реализованный язык, возможно более близкий к машинному языку, а затем уже выполнять порожденную таким образом программу. Такой способ позволяет лучше приспособить программу к структуре фактически используемой машины и тем самым добиться далеко идущей ее оптимизации. В принципе такой перевод можно осуществить вручную, однако это требует больших затрат времени и при этом могут быть допущены ошибки. Поэтому для этой цели используются специальные переводящие программы, называемые переводчиками или компиляторами (англ. соmputer).
Компилятор и интерпретатор обычно являются довольно сложными программами, которые воспринимают программу на исходном языке в форме текста, устанавливают внутреннюю структуру так заданной программы, проверяя при этом ее синтаксическую корректность (синтаксический анализ), и переводят программу на другой (объектный) язык или выполняют эту программу путем соответствующих действий.
ЯП определяется его синтаксисом и семантикой. В процессе компиляции или интерпретации программа, понимаемая как синтаксический объект, берется в качестве входных данных и в соответствии с ее семантикой превращается в программу на другом языке или в последовательность действий (процесс выполнения).
Языки программирования бывают высокого и низкого уровней.
Языки, ориентированные на конкретный тип процессора и учитывающие его особенности называются языками низкого уровня. Каждая команды языка низкого уровня непосредственно реализует одну команду микропроцессора, и они всегда ориентированны на систему команд конкретного микропроцессора. Языком самого низкого уровня является язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных условных обозначений, называемых мнемониками.
Языки высокого уровня позволяют задавать желаемые действия в программе с помощью определенного набора операторов. Они значительно ближе и понятнее человеку, чем компьютеру. Каждая команда такого языка может состоять из десятка и более команд микропроцессора. Писать программы на ЯП ВУ легче.
1
– машинно-зависимые (Ассемблер). Языки
низкого уровня.
2 – машинно-ориентированные (Си)
3 – универсальные (Фортран, Паскаль, Basic)
4 - проблемно-ориентированные (GPSS, Лого, объектно-ориентированные (форт, Смолток))
5,6,7 – (Пролог, Лисп, СНОБОЛ).
Си, Си++ - вся машинно-зависимая часть программы достаточно легко локализуется и модифицируется при переносе программы на другую архитектуру.
Фортран – первый язык высокого уровня (1958г., фирма IBM), используется и до сих пор, поддерживает модульное программирование, особенно предпочитается математиками.
Паскаль – один из наиболее популярных в учебных целях (Н.Вирт), реализует большинство идей структурного программирования.
Бейсик – для начинающих программистов, приближен к разговорному английскому языку, поддерживает модульное и структурное программирование.
Лого, среди проблемно-ориентированных языков – используется в основном для целей обучения. Это диалоговый процедурный язык (простой синтаксис).
GPSS – ориентирован на моделирование систем с помощью событий. Применяется там, где результаты исследований выражаются в терминах времени ожидания, длины очереди, использование ресурсов.
Смолток – один из ранних ОО ЯП, основная конструкция – это объект и действия с ним, предназначен для нечисловых задач (при построении систем искусственного интеллекта).
Форт – используется при решении задач имитационного моделирования в графических системах.
Языки функциональной группы используются в основном в системах искусственного интеллекта. У них мощная инструментальная поддержка, быстрый компилятор, встроенные средства организации многооконного режима, графика высокого разрешения, развитый набор математических функций.
Пролог – язык ИИ, даются термины и связи, а с его помощью создаются новые.
Лисп – имеет мощные графические конструкции, позволяет создавать программы проектирования (деталей, например). Он ориентирован на конструкторскую деятельность. Имеет библиотеку примитивов.
СНОБОЛ – язык ИИ.
Поколения языков программирования
Все языки программирования принято делить на 5 поколений.
1. Начало 50-х годов. Появились первые компьютеры и первые языки ассемблера, в которых программирование велось по принципу «Одна инструкция - одна строка».
2. Конец 50-х начало 60-х годов. Разработан символический Ассемблер, в котором появилось понятие переменной. Возросла скорость разработки и надежность программ.
3. 60-е года. Рождение языков высокого уровня. Простота программирования, независимость от конкретного компьютера, новые мощные языковые конструкции.
4. Начало 70-х и по настоящее время. Проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Мощные операторы, для которых на языках младшего поколения потребовались тысячи строк исходного кода.
5. Середина 90-х. Системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Инструкции вводятся в компьютер в наглядном виде с помощью методов, наиболее удобных для человека незнакомого с программированием.
В нашем институте на различных курсах вы научитесь программировать на различных языках программирования.