- •Московский государственный университет
- •Содержание
- •Введение
- •1.Средства вычислительной техники
- •1.1. История развития средств вычислительной техники
- •1.1.1.Предшественники электронных вычислительных машин
- •1.1.2.Математические идеи прошлого – в современных компьютерах
- •1.1.3.Поколения электронных вычислительных машин
- •1.2.Упрощенная структура компьютера и принцип его работы.
- •1.3. Программное обеспечение компьютера
- •1.4. История языков программирования
- •1.5. Основные характеристики компьютеров
- •1.6. Типы вычислительных систем
- •1.6.1. Упрощенная классификация вычислительных систем
- •1.6.2. Особенности некоторых типов эвм
- •1.6.2.1 МикроЭвм
- •1.6.2.2. Персональные компьютеры
- •1.6.2.3. Большие эвм и СуперЭвм
- •2. Представление информации в компьютере
- •2.1.Представление чисел в позиционной системе счисления
- •2.2. Способы перевода чисел из одной системы счисления в другую
- •2.2.1. Случай, когда система счисления является целой степенью числа 2
- •2.2.2. Общий случай перевода
- •2.3.Двоичная арифметика
- •2.4.Представление чисел в форме с фиксированной и плавающей точкой
- •2.5. Коды для представления чисел в компьютере
- •2.5.1.Прямой код
- •2.5.2.Обратный код
- •2.5.3.Дополнительный код
- •2.5.4.Смещенный код.
- •2.5.5. Пример кодирования чисел в форме с плавающей точкой
- •2.5.6. Сложение чисел в форме с плавающей точкой
- •2.6. Кодирование текстовой информации
- •2.7. Кодирование графической информации
- •2.8. Кодирование звуковой информации
- •2.9. Представление команд
- •3. Основы организации и обработки данных
- •3.1 Основные структуры данных
- •3.2 Основные понятия баз данных и систем управления базами данных
- •3.2.1. Общие сведения
- •3.2.2. Режимы и технологии работы с базами данных
- •4. Основные понятия компьютерной графики
- •5.Компьютерные сети
- •5.1.Основные понятия компьютерных сетей
- •Как уже отмечалось, система компьютерной связи согласно модели osi/iso рассматривается на семи уровнях.
- •5.2.Интернет и его основные службы Получение информации из Интернета
- •5.3. Создание Web-документов Основы языка html
- •5.3.1. Структура документа на языке html
- •5.3.2. Правила вложения элементов
- •5.3.3. Функциональные блочные элементы
- •6. Вопросы компьютерной безопасности
- •6.1. Понятие компьютерной безопасности
- •6.2. Компьютерные вирусы
- •6.2.1. Методы защиты от компьютерных вирусов
- •6.2.2. Средства антивирусной защиты
- •6.3. Защита от несанкционированного доступа (методы криптографии)
- •6.3.1. Понятие несимметричного шифрования информации
- •6.3.2. Принцип достаточности защиты
- •6.3.3. Понятие электронной подписи
- •6.3.4. Понятие электронных сертификатов
- •7. Математические основы синтеза схем
- •7.1. Основы булевой алгебры. Булевы функции
- •7.2. Основы автоматных преобразований
- •Литература.
- •Св. План 2007г., поз.
1.4. История языков программирования
Программы для первых компьютеров писали на «машинном» языке, т.е. в кодах, непосредственно воспринимаемых компьютером.
В начале 50-х годов появился язык ассемблер*1 (или автокод). Каждая команда этого языка соответствовала одной машинной команде, но в отличие от машинного языка в команде ассемблера использовались мнемонические обозначения кодов операций и адресов данных.
Язык ассемблер используется и сейчас, когда требуется наиболее полно учесть особенности данного компьютера. Программы, переводящие язык ассемблера в машинный код, также называются ассемблерами.
В связи с трудоёмкостью написания программ на ассемблере и невозможностью переносить программы с одного компьютера на другой появились языки высокого уровня (алгоритмические, процедурно-ориентированные), ориентированные на удобство описания решаемых задач, а не на особенности компьютера. Программы на языке высокого уровня либо переводятся в программы в машинных кодах с помощью программ-компиляторов, либо интерпретируются с помощью программ-интерпретаторов.
Первый язык высокого уровня Фортран*2был разработан в 1958 году. Этот язык был ориентирован на решение научно-технических задач. Благодаря мощной библиотеке подпрограмм, разработанных в течение ряда лет, этот язык всё ещё применяется.
В 60-х годах появились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Относительная простота структуры этих языков и одновременно возможность использования мощных синтаксических конструкций позволили резко повысить производительность труда программистов. Подавляющее большинство языков этого поколения успешно применяется и сегодня. К ним относятся, в частности, Кобол*3,Алгол*4иБейсик*5.
С начала 70-х годов разрабатываются языки, предназначенные для реализации крупных проектов, повышения их надежности и скорости создания. Эти языки часто ориентированы на специализированные области применения, где хороших результатов можно добиться, используя не универсальные, а проблемно - ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой на языках младших поколений потребовались бы тысячи строк исходного текста. В это же время создаются наиболее распространённые и сегодня языки Паскаль*6,Си*7, а затем иСи++*8, основанный на новых идеях – идеях объектного программирования.
В середине 90-х годов разрабатываются также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, которая закладывается в эти языки, – возможность автоматического формирования результирующего текста на универсальных языках программирования (который потом требуется откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием. В это же время создаются Джава*9,СиШарп*10и др.
Определения:
*Ассемблер появился в начале 50-х годов, позволяя писать программы с использованием мнемонических обозначений кодов операций, имен операндов и т.п. Программы на ассемблере очень просто переводить в машинный код. Это делается с помощью программы, которая тоже называется ассемблером. Язык ассемблер используется и сейчас, когда нужно достичь максимального быстродействия и минимального размера программ, либо наиболее полно учесть в программе особенности компьютера.
*2Фортран (FORTRAN). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Программисты, разрабатывавшие программы исключительно на ассемблере, выражали серьезное сомнение в возможности появления высокопроизводительного языка высокого уровня, поэтому основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статических комплексов и кончая пакетами управления спутниками. Имеется стандартная версия Фортрана HPF (High Performance Fortran) для параллельных суперкомпьютеров со множеством процессоров.
*3Кобол (COBOL). Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой "многословностью" – его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня.
*4Алгол (ALGOL). Компилирующий язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.
*5Бейсик (BASIC). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.
*6Паскаль (Pascal). Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применить его при создании крупных проектов.
*7Си (С). Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).
*8Си++ (С++). Си++ - это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.
*9Джава, Ява (Java). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформо-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальной Java - машины JVM (Java Virtual Machine). Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров и созданию платформо-независимых программных модулей.
*10СиШарп (С#). В конце 90-х годов в компании Microsoft под руководством Андерса Хейльсберга был разработан язык С#. В нем воплотились лучшие идеи Си и Си++, а также достоинства Java. Правда, С# , как и другие технологии Microsoft, ориентирован на платформу Windows. Однако формально он не отличается от прочих универсальных языков, а корпорация даже планирует его стандартизацию. Язык С# предназначен для быстрой разработки .Net содержит множество особенностей, привязывающих С# к внутренней архитектуре Windows и платформы .Net.