Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[0]

1.1 ЭВМ и ее обеспечение

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

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


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

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

В последнее время четко выделились две тенденции, употребляющиеся соответственно в двух выдержавших жестокую конкуренцию семействах операционных систем: UNIX и Windows (операционные системы некогда переживали бум, теория их строения была сформулирована очень подробно, но, увы, многие разработки так и остались в теоретической области). В юниксах, вообще говоря, всего два редактора: vi и emacs, и каждый юниксо-ид, подчас великолепно владея одним из них, с трудом догадывается о том, как выйти из другого. Emacs, например, определяет по расширению открываемого файла, какую подсветку ему применять, и в стандартной поставке содержит до сотни подсветок разных языков программирования. Отладчик в юниксе также один, работает на очень низком уровне и редко помогает на практике при использовании языка сколь-нибудь высокого уровня. Таким образом, в поставку языка под юниксовую платформу обычно включается только транслятор (и лишь в редких случаях высокоуровневый отладчик).

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

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

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


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

АССЕМБЛЕРКОМПИЛЯТОРИНТЕРПРЕТАТОР

БыстротаГибкость

исполненияиспользования

Лекция вторая

Раз уж зашла речь о языках, это достойно того, чтобы поговорить подробнее:

1.3 Типы языков программирования и их эволюция

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

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

2.Процедурные языки - языки среднего и высокого уровня, ориентирование на деление основной проблемы на несколько более мелких и решение каждой мелкой с помощью своей подпрограммы. Основные представители этого направления: Фортран (в настоящее время используется версия Фортран-99, и та только в программировании больших численных проектов, откуда постепенно вытесняется готовыми математическими вычислительными системами вроде Мэпл, Мат-лаб и других), Кобол (применяется в области экономики), Алгол (не применяется нигде, но в 60х годах имел большое теоретическое влияние на развитию теории языков программирования), Си (уже почти не используется), Ада (широко использовался Департаментом Защиты США, сейчас заменен) и Паскаль (пока что используется в системе Дельфи, но постепенно умирает).



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13]