- •Б) Системное программное обеспечение и пользовательский интерфейс.
- •Назначение операционной системы
- •Ос семейства Windows
- •Unix-подобные ос
- •Б) Средства защиты информации.
- •Б) База данных.
- •Основные функции субд
- •5. Журнализация
- •6. Поддержка языков бд
- •Б) Основы защиты информации.
- •Информационная безопасность и её составляющие.
- •Основные угрозы безопасности данных
- •Свойства алгоритма
- •Назначение операционной системы
- •Ос семейства Windows
- •Unix-подобные ос
- •Модемная компьютерная телекоммуникация.
- •Организация связи.
- •Программное обеспечение модемной телекоммуникации.
- •Факс-модемная телекоммуникация
- •Достоинства и недостатки Принстонской архитектуры.
- •Достоинства и недостатки Гарвардской архитектуры.
- •Б) Прикладное программное обеспечение.
- •Б) Обзор языков программирования высокого уровня.
- •Б) Технология программирования.
- •Основные функции субд
- •5. Журнализация
- •6. Поддержка языков бд
- •Б) Телекоммуникации.
- •Модемная компьютерная телекоммуникация.
- •Организация связи.
- •Программное обеспечение модемной телекоммуникации.
- •Факс-модемная телекоммуникация
- •Б) Компьютерная графика и системы геометрического моделирования.
- •Геометрическое моделирование и его задачи
- •Краткая характеристика, особенности cad-систем некоторых сапр
- •Общие вопросы геометрического моделирования. Графические объекты
- •Плоское геометрическое моделирование. Примитивы и их атрибуты
- •Объёмное геометрическое моделирование.
- •Основные положения использования операционной программы Windows для управления графическими компьютерными программами
- •Использование справочной системы. Применение интерактивных графических систем для решения задач геометрического моделировани
- •Общие вопросы создания и редактирования графических документов (на примере компас-3d)
- •Б) Компьютерная графика и системы геометрического моделирования.
- •Геометрическое моделирование и его задачи
- •Краткая характеристика, особенности cad-систем некоторых сапр
- •Общие вопросы геометрического моделирования. Графические объекты
- •Плоское геометрическое моделирование. Примитивы и их атрибуты
- •Объёмное геометрическое моделирование.
- •Основные положения использования операционной программы Windows для управления графическими компьютерными программами
- •Использование справочной системы. Применение интерактивных графических систем для решения задач геометрического моделировани
- •Общие вопросы создания и редактирования графических документов (на примере компас-3d)
- •Назначение и основные функции Excel
- •Б) Структура информатики как науки. Связь информатики и кибернетики. Информационные технологии. Информационные продукты и услуги.
- •Б) Структура информатики как науки. Связь информатики и кибернетики. Информационные технологии. Информационные продукты и услуги.
- •Способы моделирования:
- •Б) Информационное общество. Информационная картина мира.
- •Б) Эволюция методологии программирования: процедурное программирование — модульное программирование — объектно-ориентированное программирование.
- •Определение ооп и его основные концепции.
- •Концепции.
- •Контроль доступа
- •Свойства объекта
- •Подходы к проектированию программ в целом.
- •Прототипное программирование
- •Критика ооп
- •Критика рекламы ооп.
- •Объектно-ориентированные языки
- •Мультипрограммирование. Формы многопрограммной работы
- •А) Понятие информационной культуры. Понятие информации. Свойства информации. Информационные революции. Информатизация общества.
- •Системы для работы с электронными документами
- •Б) Информационные технологии. Связь информационных технологий и информационных систем. Основные виды информационных технологий.
- •Назначение и основные функции Excel
- •Б) Настольные издательские системы
- •Б) Информационные технологии : сапр, асу
- •Интегрированная информационная среда
- •Эволюция кис
- •Вариант 24.
- •Предпосылки быстрого развития информационных технологий
- •Этапы развития информационных технологий
- •Системы для работы с электронными документами
- •Трехмерная компьютерная графика
- •Компьютерное моделирование и имитация
- •Сетевая виртуальная реальность
- •Аппаратные средства виртуальной реальности
- •Применение технологии виртуальной реальности
- •Виртуальная реальность в промышленности
- •Виртуальные решения
- •Области применения мультимедиа.
- •Программные средства мультимедиа.
- •Технологии мультимедиа.
- •Б) Информационные технологии. Связь информационных технологий и информационных систем. Основные виды информационных технологий.
- •Понятие «информация», ее виды
- •Понятие «информационный ресурс», виды
- •Информатизация, ее основные задачи
- •Информационный рынок, его сектора
- •Понятия «информационная система» и «автоматизированная информационная система»
- •Предметная область автоматизированной информационной системы
- •Категории пользователей аис
- •Понятие «информационные технологии»
- •Поколения развития компьютеров и информационных технологий
- •Классификация информационных технологий
- •Основные тенденции развития информационных технологий
- •Компьютерные технологии работы с базами данных
- •Новые информационные технологии в образовании
- •Технология поиска информации
- •Основы информационной безопасности компьютера
Б) Прикладное программное обеспечение.
К прикладному программному обеспечению (ППО) относятся программы, разработанные для пользователей либо самими пользователями, для решения с помощью ЭВМ конкретной задачи или группы задач. Программы обработки заказов, ведения бухгалтерского учёта, работы с электронной почтой – только малая часть внушительного перечня видов ППО.
Классифицировать прикладное программное обеспечение можно следующим образом.
Корпоративные информационные системы. Данные системы обеспечивают частичное или полное информационное сопровождение деятельности предприятия или корпорации. В число таких систем входят системы электронного документооборота и контроля над исполнением решения, системы корпоративного бухгалтерского учёта, специализированные корпоративные базы данных, инфраструктурные системы управления локальной сетью, предоставления удалённого доступа и электронной почты.
Программное обеспечение офисного назначения. Такие программы (пакеты программ) обслуживают потребности индивидуальных пользователей в создании и управлении информацией. В число наиболее распространённых «офисных» программ входят: текстовый процессор (редактор), табличный процессор (электронная таблица), средства работы с презентациями, клиенты электронной почты.
Программное обеспечение для работы с удалёнными ресурсами. Данные программы позволяют получить через сеть доступ к ресурсам различного вида: html-страницы, удалённые хранилища мультимедиа (например, фотоальбомы), удалённые файловые хранилища и т.д. К числу таких программ относятся интернет-обозреватели, клиенты доступа к файловым хранилищам (FTP-клиент), специализированные клиенты.
Программные средства передачи для удаленного общения. Они позволяют осуществлять передачу сообщений между пользователями, расположенными на определённой дистанции. В состав таких программных средств входят интернет пейджеры (протоколы ICQ, Google Talk, MailRu Agent и т.д.), системы интерактивных текстовых телеконференций – «чаты», средства IP- телефонии (обеспечение голосового- и видеоканала посредством интернет-протоколов), средства интерактивных аудио- и видео конференций. Образовательное программное обеспечение. Оно по содержанию близко к ПО для работы с медиа и для развлечений. Однако в отличие от него имеет четкие требования по тестированию знаний пользователя и отслеживанию усвоения того или иного материала. Многие образовательные программы включают функции совместного удалённого использования тех или иных ресурсов.
Имитационное программное обеспечение – используется для симуляции физических или абстрактных систем в целях научных исследований, обучения или развлечения.
Инструментальные программные средства для работы с мультимедиа содержимым. Данные программы позволяют создавать и изменять мультимедиа ресурсы различных типов: музыкальные ресурсы, изображения (включая обработанные фото), дизайнерские решения, видеоролики, комплексные мультимедиа ресурсы (например, сложные флеш-ролики).
Прикладные программы для проектирования и конструирования. Используются при разработке (моделирования или прототипирования) аппаратного и программного обеспечения. Охватывают автоматизированный дизайн (computer aided design — CAD), автоматизированное проектирование (computer aided engineering — CAE), редактирование и компилирование языков 45 программирования, программы интегрированной среды разработки (Integrated Development Environments -IDE), интерфейсы для прикладного программирования (Application Programmer Interfaces - API).
Вариант 8.
а) Программирование и инструментальные средства ЭВМ.
б) Структура информатики как науки. Связь информатики и кибернетики. Информационные технологии. Информационные продукты и услуги.
1. Теоретическая информатика. Теоретический раздел любой науки базируется на математических методах исследования. Это относится и к информатике. Она использует методы математики для построения и изучения моделей обработки, передачи и использования информации, создаёт тот теоретический фундамент, на котором строится всё здание информатики.
По своей природе информация дискретна и представляется обычно в символьно-цифровом виде в текстах и точечном виде на рисунках. С учётом этого в информатике широко используется математическая логика как раздел дискретной математики.
Следующее направление теоретической информатики - вычислительная математика, которая разрабатывает методы решения задач на компьютерах с использованием алгоритмов и программ.
Подраздел теория информации (а также теория кодирования и передачи информации) изучает информацию в виде абстрактного объекта, лишённого конкретного содержания. Здесь исследуются общие свойства информации и законы, управляющие её рождением, развитием и уничтожением. Здесь же изучаются те формы, в которые может отобразиться содержание любой конкретной элементарной единицы информации.
Системный анализ - еще одно направление теоретической информатики. В нём изучается структура реальных объектов, явлений, процессов и определяются способы их формализованного описания через информационные модели. Имитационное моделирование - один из важнейших методов компьютерного моделирования, в котором воспроизводятся процессы и явления, протекающие в реальных объектах.
Наконец, теория принятия решений изучает общие схемы выбора нужного решения из множества альтернативных возможностей. Такой выбор часто происходит в условиях конфликта или противоборства. Модели такого типа изучаются в теории игр.
2. Искусственный интеллект. Это направление информатики - самое молодое, возникшее в середине 70-х годов. Однако именно искусственный интеллект определяет стратегические направления развития информатики. Искусственный интеллект тесно связан с теоретической информатикой, откуда он заимствовал многие модели и методы, например, использование логических средств для преобразования знаний. Столь же прочны связи этого направления с кибернетикой. Математическая и прикладная лингвистика, нейрокибернетика игомеостатика теснейшим образом связаны с развитием искусственного интеллекта. И конечно, работы в этой области немыслимы без развития систем программирования.
Основная цель работ в области искусственного интеллекта - стремление проникнуть в тайны творческой деятельности людей, их способности к овладению знаниями, навыками и умениями. Для этого необходимо раскрыть те глубинные механизмы, с помощью которых человек способен научиться практически любому виду деятельности. И если суть этих механизмов будет разгадана, то есть надежда реализовать их подобие в искусственных системах, т.е. сделать их по-настоящему интеллектуальными. Такая цель исследований в области искусственного интеллекта тесно связывает их с достижениями психологии - науки, одной из задач которой является изучение интеллекта человека. В психологии сейчас активно развивается особое направление -когнитивная психология, исследования в котором направлены на раскрытие закономерностей и механизмов, связанных с процессами познавательной деятельности человека и которые интересуют специалистов в области искусственного интеллекта.
Другое направление психологии - психолингвистика также интересует специалистов в области искусственного интеллекта. Её результаты касаются моделирования общения не только с помощью естественного языка, но и с использованием иных средств: жестов, мимики, интонации и т.п.
Кроме теоретических исследований активно развиваются и прикладные аспекты искусственного интеллекта. Например, робототехника занимается созданием технических систем, которые способны действовать в реальной среде и частично или полностью заменить человека в некоторых сферах его интеллектуальной и производственной деятельности. Такие системы получили название роботов.
Экспертная система - еще одно прикладное направление искусственного интеллекта. В отличие от других интеллектуальных систем, экспертная система имеет три главные особенности: 1 - она адаптирована для любого пользователя, 2 - она позволяет получать не только новые знания, но и профессиональные умения и навыки, связанные с данными знаниями, т.е. не только даёт знать что..., но и знать как..., 3 - она передаёт не только знания, но и пояснения и разъяснения, т.е. обладает обучающей функцией.
3. Программирование. Программирование как научное направление возникло с появлением вычислительных машин и только программное обеспечение определяет эффективность использования ЭВМ. В настоящее время это достаточно продвинутое направление информатики. В этой области работает значительный отряд специалистов, которые подразделяются на системных и прикладных программистов.
Системные программисты являются, как правило, специалистами очень высокого уровня и разрабатываютсистемное программное обеспечение, которое включает в себя операционные системы, языки программирования и трансляторы. Операционные системы обеспечивают функционирование вычислительной техники и предоставляют пользователю комфортные условия взаимодействия с компьютером.
Языки программирования создаются для разработки прикладного программного обеспечения. Эти языки относятся к языкам высокого уровня, мнемоника и семантика которых близка к естественному языку общения людей.
Есть ещё машинные языки, которые используются непосредственно в ЭВМ и которые состоят из последовательности машинных команд, закодированных в микропроцессорах. Для преобразования программ, написанных на языке высокого уровня. в программы на машинном языке используются специальные программы -трансляторы, которые также создаются системными программистами.
Прикладное или проблемно-ориентированное программирование ориентировано на разработку пользовательских программ для решении тех или иных задач в различных областях науки, техники, производства. Например, в образовании используются пакеты педагогических программных средств (ППС), в которые включаются обучающие и контролирующие программные средства в определённой предметной области.
4. Прикладная информатика. Достижения современной информатики широко используются в различных областях человеческой деятельности: в научных исследованиях (АСНИ - автоматизированные системы для научных исследований), в разработке новых изделий (САПР - системы автоматизированного проектирования), в информационных системах (АИС - автоматизированные информационные системы), в управлении (АСУ - автоматические системы управления), в обучении (АОС - автоматизированные обучающие системы) и др.
5. Вычислительная техника. Раздел информатики, посвящённый вычислительной технике.
6. Кибернетика. Термин "кибернетика"( от греческого слова κυβερνητης, т.е. "кормчий") появился летом 1947 г. как результат обсуждения новой терминологии группой ученых во главе с Норбертом Винером, в течение ряда лет проводивших исследования в различных областях научных знаний (математической статистики, электросвязи, нейрофизиологии и др.), связанных с вопросами управления с помощью различного рода информационных сигналов. В следующем году Н. Винер публикует монографию под названием "КИБЕРНЕТИКА или управление и связь в животном и машине". Идея "общей теории управления" получила подкрепление с появлением компьютеров, способных единообразно решать самые разные задачи. В 40-е годы наряду с идеей об универсальности схем управления в кибернетике развиваются и другие идеи: идея универсальной символики, идея логического исчисления. идея измерения информации через понятия вероятностной и статистической (термодинамической) теорий. Все эти и ряд других идей и направлений исследования так называемой "ничейной территории" между различными сложившимися науками впоследствии станут основой кибернетики, которую в свою очередь вберёт в себя информатика после создания и развития компьютерной техники.
Наиболее активно развивается техническая кибернетика. В её состав входит теория автоматического управления, которая стала теоретическим фундаментом автоматики. Трудно переоценить важность исследований в этой области. Без них невозможны были бы достижения в области приборостроения, станкостроения, атомной энергетики и других систем управления промышленными процессами и научными исследованиями.
Ведущее место в кибернетике занимает распознавание образов. Основная задача этой дисциплины - поиск решающих правил, с помощью которых можно было бы классифицировать многочисленные явления реальности. соотносить их с некоторыми эталонными классами. Распознавание образов - это пограничная область междукибернетикой и искусственным интеллектом, ибо поиск решающих правил чаще всего осуществляется путём обучения, а обучение, конечно, интеллектуальная процедура.
Ещё одно научное направление связывает кибернетику с биологией. Аналогии между живыми и неживыми системами многие столетия волнуют учёных. Насколько принципы работы живых систем могут быть использованы в искусственных объектах? Ответ на этот вопрос ищет бионика - пограничная наука между кибернетикой и биологией. В свою очередь, нейрокибернетика пытается применить кибернетические модели в изучении структуры и действия нервных тканей.
Недавно возникло и ещё находится в стадии оформления научное направление кибернетики - гомеостатика, изучающая равновесные (устойчивые) состояния сложных взаимодействующих систем различного типа. Это могут быть биологические системы, социальные системы, автоматические системы и др.
Наконец, математическая лингвистика занимается исследованием особенностей естественных языков, а также моделей (формальных грамматик), позволяющих формализовать синтаксис и семантику таких языков. Это направление весьма актуально в связи с развитием систем машинного перевода текстов с одних языков на другие
Довольно долго (особенно в России) под информационными технологиями понимали кибернетику, так что даже историю развития информатики излагали как историю кибернетики. Теперь, однако, информационная технология и кибернетика размежевались окончательно. Кибернетика (от греч. Κυβερνήτης - «кормчий», «искусство управления», - «правлю рулём, управляю») - наука об общих закономерностях процессов управления и передачи информации в машинах, живых организмах и обществе. В теории информации термин кибернетика впервые был предложен Норбертом Винером в 50-х годах. Он определял её как «науку о связи и управлении в машине и организме». С. Бир назвал её наукой эффективной организации, а Г. Пак расширил определение, включив потоки информации «во все медиа», начиная со звёзд и заканчивая мозгом. Замечание. Слово Кибернетика сначала упоминалось в контексте «исследования самоуправления» Платоном в «Законах», для обозначения управления людьми. Слово «cybernétique» использовалось почти в современном значении в 1830 французским физиком, систематизатором наук Андре Ампером (1775-1836), для обозначения науки управления в его системе классификации человеческого знания. Кибернетика включает изучение обратной связи, чёрных ящиков, и производных концептов, таких как управление и коммуникация в живых организмах, машинах и организациях, включая самоорганизации. Она фокусирует внимание на том, как что-либо (цифровое, механическое или биологическое) обрабатывает информацию, реагирует на неё и изменяется или может быть изменено, для того чтобы лучше выполнять первые две задачи. Более философское определение кибернетики описывает кибернетику как «искусство обеспечения эффективности действия». Кибернетика соединяет системы управления, теории электрических цепей, машиностроения, логического моделирования, эволюционной биологии, неврологии, антропологии, и психологии, теорию игр, теорию систем, психологию (особенно нейропсихология, бихевиоризм, познавательная психология), философию, и архитектуру. Как видно, термин информация в определениях кибернетики вообще никак не поминается, хотя, конечно, информация в кибернетике присутствует. Кибернетика – междисциплинарные исследования структуры регулирующих систем. Кибернетика близко связана с теорией управления и теорией систем. Кибернетика одинаково применима к физическим, биологическим и социальным системам. Кибернетика полезна, когда система вовлечена в замкнутую цепь сигнала, где действие системы вызывает некоторое изменение в окружающей среде, а это изменение проявляется на системе через информацию/обратную связь, что вызывает изменения в способе поведения системы. Эти «круговые причинные» отношения необходимы и достаточны с точки зрения кибернетики. Согласно современному определению, кибернетика – наука об управлении, связи и переработки информации. Основной объект исследования – кибернетическая система, рассматриваемая абстрактно, вне зависимости от её материальной сущности. Примеры кибернетических систем – автоматические регуляторы в технике, компьютеры, человеческий мозг, биологические популяции, человеческое общество. Каждая такая система представляет собой множество взаимосвязанных объектов, способных воспринимать, запоминать и перерабатывать информацию, а также обмениваться ею. Теоретическое ядро кибернетики составляют теория информации, теория алгоритмов, теория информации, исследование операций, теория оптимального управления, теория распознавания образов. Кибернетика разрабатывает общие принципы создания систем управления и систем для автоматизации умственного труда. Основные технические средства для решения задач управления – компьютеры. Поэтому возникновение кибернетики как науки связано с созданием в 40-х гг 20 в этих машин, а развитие кибернетики в теоретических и практических аспектах – с прогрессом электронной вычислительной техники. Таким образом, кибернетика использует достижения компьютерных наук, но и компьютерные науки во многом используют принципы кибернетики, кибернетика основана на информатике, но и информатика пользуется кибернетикой. Компьютерные, информационные технологии и кибернетика тесно связаны друг с другом, что не мешает им быть совершенно разными технологиями и при случае свободно обходиться друг без друга. Обратная связь в кибернетике, теории управления, радиотехнике - это процесс, приводящий к тому, что результат функционирования какой-либо системы влияет на параметры, от которых зависит функционирование этой системы. Другими словами, на вход системы подаётся сигнал, пропорциональный её выходному сигналу (или, в общем случае, являющийся функцией этого сигнала). Часто это делается преднамеренно, чтобы повлиять на динамику функционирования системы. Обратные связи наблюдаются или применяются в самых различных областях, включая электронику, экономию, биологию и т. п. Различают положительную и отрицательную обратную связь. Отрицательная обратная связь изменяет входной сигнал таким образом, чтобы противодействовать изменению выходного сигнала. Это делает систему более устойчивой к случайному изменению параметров. Положительная обратная связь, наоборот, усиливает изменение выходного сигнала. Системы с сильной положительной обратной связью проявляют тенденцию к неустойчивости, в них могут возникать незатухающие колебания, т.е. система становится генератором. Чёрный ящик - термин, используемый для обозначения системы, механизм работы которой очень сложен, неизвестен или неважен в рамках данной задачи. Такие системы имеют «вход» для ввода информации и «выход» для отображения результатов работы. Состояние выходов обычно функционально зависит от состояния входов. Если механизм работы неважен, то зависимость результатов от входных данных, как правило, известна; концепция чёрного ящика при этом используется, чтобы не отвлекаться на внутреннее устройство. Однако такой подход может дать ошибку при использовании устройства на пределе его возможностей. И если два "чёрных ящика" взаимодействуют между собой, то делают они это только путем обмена информацией. Теория управления - наука о принципах и методах управления различными системами, процессами и объектами. Кибернетика может рассматриваться как прикладная информатика в области создания и использования автоматических или автоматизированных систем управления разной степени сложности, от управления отдельным объектом (станком, промышленной установкой, автомобилем и т. п.) до сложнейших систем управления целыми отраслями промышленности, банковскими системами, системами связи и даже сообществами людей. Кибернетика установила, что управление присуще только системным объектам, главное в которых антиэнтропийность, т.е. направленность на упорядочение системы. Процесс управления можно разделить на несколько этапов: сбор и обработка информации; анализ, систематизация, синтез; постановка на этой основе целей; выбор метода управления, прогноз; внедрение выбранного метода управления; оценка эффективности выбранного метода управления (обратная связь). Конечной целью теории управления является универсализация, а значит согласованность, оптимизация и наибольшая эффективность функционирования систем. Главные характеристики "черного ящика" - это входная и выходная информация. И если два таких "черных ящика" взаимодействуют между собой, то делают они это только путем обмена информацией. В границах системно-кибернетического подхода информация рассматривается в контексте трёх фундаментальных аспектов любой кибернетической системы: информационном, связанном с реализацией в системе определенной совокупности процессов отражения внешнего мира и внутренней среды системы путем сбора, накопления и переработки соответствующих сигналов; управленческом, учитывающем процессы функционирования системы, направления ее движения под влиянием полученной информации и степень достижения своих целей; организационном, характеризующем устройство и степень совершенства самой системы управления в терминах её надежности, живучести, полноты реализуемых функций, совершенства структуры и эффективности затрат на осуществление процессов управления в системе.
В настоящее время происходит стремительное развитие глобального процесса информатизации общества. При этом кардинальным образом изменяется вся информационная среда общества. Новые автоматизированные информационные технологии проникают практически во все сферы социальной практики и становятся неотъемлемой частью новой, информационной культуры человечества.
Именно поэтому сегодня представляется исключительно актуальной и важной проблема формирования информационной технологии, как самостоятельной научной дисциплины о методах создания высокоэффективных информационных технологии (в обычном, узком понимании этого термина), т.е. своего рода теории и методологии проектирования информационных технологий.
Таким образом, помимо уже широко используемого в науке и практике понятия информационной технологии, как способа рациональной организации некоторого часто повторяющегося информационного процесса, необходимо развивать и новое, более широкое представление о значении этого термина. И в этом случае он будет обозначать самостоятельный раздел науки, точно так же, как это имеет место в отношении самого понятия "технология".
Объектом исследований информационной технологии, как научной дисциплины, должны являться информационные технологии (в узком понимании этого термина), т.е. способы рациональной организации информационных процессов.
Предметом же исследований для информационной технологии, как науки, должны стать теоретические основы и методы создания информационных технологий, а также их проектирование и эффективная реализация.
Для развития информационной технологии в таком понимании нам в ближайшие годы предстоит пройти весь цикл формирования этого нового научного направления; классифицировать различные виды информационных технологий, разработать критерии для их сравнительного анализа и количественной оценки эффективности, создать методы синтеза высокоэффективных технологий, основанные на последних достижениях фундаментальной науки, а также на применении информационных элементов и информационных систем, использующих новые физические принципы функционирования.
Вполне возможно, что для успешного развития этой науки придется также создать ряд новых научных дисциплин, в том числе — теорию информационного взаимодействия в природе и обществе. При этом представляется важным уделить особое внимание не только таким традиционным и уже более или менее изученным фазам реализации информационных процессов, как кодирование, обработка и передача информации. Кроме того, предстоит разобраться и с гораздо более сложными фазами этих процессов, которые практически еще не изучаются современной наукой. Это фазы генерации информации, а также ее рецепции (восприятия) информационными системами, в том числе — такими сложными и мало изученными, как сознание и подсознание человека.
Только после этого можно научиться создавать и практически использовать действительно высокоэффективные информационные системы и технологии, которые и должны будут стать технологической базой развития цивилизации в XXI веке.
Термин «технология» широко употреблялся до недавнего времени только при изучении производственных процессов. Рассмотрим некоторые определения.
«Технология (от греческого - искусство, мастерство, умение и ...логия) - совокупность методов обработки, изготовления, изменения состояния, свойств, формы сырья, материала или полуфабриката, осуществляемых в процессе производства продукции».
«Технология - совокупность производственных методов и процессов отрасли производства, а также научное описание способов производства...»
«Технология - ...
1) совокупность методов обработки, изготовления, изменения состояния, свойств, формы сырья, материала или полуфабриката в профессии производства, например, технология металлов, химическая технология, технология строительных работ;
2) наука о способах воздействия на сырье, материалы или полуфабрикаты соответствующими орудиями производств».
Очевидно, что технология - это научное решения практических задач, а расцвет современных технологий напрямую можно связать с научно-технической революцией.
Все приведенные определения ориентированы по производственно-промышленному «вектору». Однако, понятие «технология» со временем содержательно оказалось намного богаче. Потенциальные возможности понятия «технология» в ходе его использования в традиционной сфере постоянно возрастали. Область, в пределах которой это понятие употреблялось, стала интенсивно расширяться, и вследствие этого, включать в себя педагогику, социологию, культуру и т.д.
Таким образом, сегодня понятие «технология» можно рассматривать на разных уровнях. На философском уровне технология – учение о наилучшей (оптимальной) деятельности. На межпредметном уровне это процесс, определяемый совокупностью средств и методов обработки, изготовления, изменения состояния, свойств, формы сырья или материала. Наконец, на общеобразовательном уровне технологию определяют как область знаний, методов и средств, используемых для оптимального преобразования и применения материи (материалов), энергии и информации по плану и в интересах человека, общества, окружающей среды.
Замена материального объекта на идеальный (информацию) позволяет использовать понятие технологии в области, касающейся обработки и производства информации с применением современных средств компьютерной техники.
Информация является одним из ценнейших ресурсов общества наряду с такими традиционными материальными видами ресурсов как нефть, газ, полезные ископаемые и др. Понятие «информация» вышло на передний край науки сравнительно недавно. В старых словарях его не найти. Первые научные труды, составившие фундамент теории информации, появились примерно семьдесят лет назад. И чуть более пятидесяти лет назад академик А.Н. Колмогоров отнес информацию к важнейшим научным понятиям и назвал ее первоосновой новых перспективных отраслей науки и техники.
В условиях современного рынка актуальным становится определение информации, которое дает В.Л. Тамбовцев: «Информация – это те продукты или услуги, которые предназначены их производителем для передачи знаний в максимально доступной для потенциального потребителя форме».
Понятие информации – это и более широкое, и в каком-то смысле более узкое понятие, чем знание. Общий поток информации, который поступает из внешнего мира в мозг человека через его органы чувств, выражается числом 100 000 битов в секунду. Но лишь тысячная доля этой информационной лавины становится фактом сознания. На своем высшем уровне отражение в своей результативной форме выступает как знание. Зададимся вопросом – можно ли знание отождествлять с информацией? Как пишет А.Г. Спиркин: «...Знание противоположно незнанию, т.е. отсутствию проверенной информации о чем-либо...». Знания могут появиться только после получения и переработки информации. Таким образом, знание выступает звеном в цепи: возникновение - передача - получение - переработка - дальнейшая передача трансформированной информации.
Конечно, понятия «информация» и «знание» очень близки, а знание, осведомленность играют сегодня очень важную роль в жизни людей. Для технической науки, как информатика, понятие информации, однако, не может основываться на таких антропоцентрических понятиях, как знание, и не может опираться только на объективность фактов и свидетельств. Об этом пишет С.В.Симонович: «Средства вычислительной техники обладают способностью обрабатывать информацию автоматически, без участия человека, и ни о каком знании или незнании здесь речь идти не может. Эти средства могут работать с искусственной, абстрактной и даже с ложной информацией, не имеющей объективного отражения ни в природе, ни в обществе». В своей книге он дает следующее определение информации: «Информация – это продукт взаимодействия данных и адекватных им методов».
Приведем еще одно определение информации: «Информатика рассматривает информацию как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира». Кроме понятия «информация» в информатике часто используется понятие «данные». Данные могут рассматриваться как признаки или записанные наблюдения, которые по каким-то причинам не используются, а только хранятся. Если данные участвуют в процессе снятия неопределенности, то данные становятся информацией. Следовательно, можно утверждать, что информацией являются используемые данные.
Итак, для различных областей науки существуют свои определения понятия «информация».
Идея включения информации в цепочку производства информационного продукта принадлежит В.М. Глушкову. В 1982 году в своей книге «Основы безбумажной информатики» он дал следующее определение: «Информационные технологии – процессы, где основной перерабатываемой продукцией является информация». Отсюда вытекает положение о том, что информационные технологии использовались всегда, так как задачи накопления, обработки и распространения информации стояли перед человечеством на всех этапах его развития. Особенно широко информационные технологии применялись для обучения.
Почему же об информационных технологиях заговорили не так давно? Н.В. Апатова отмечает, что «методические системы не называли информационными технологиями потому, что данный термин связан с появлением вычислительной техники». По мнению Н.В. Апатовой, информационная технология – это некая методическая система, то есть часть педагогической технологии.
В некоторых работах мы встречаемся с такими определениями информационных технологий обучения, которые не дают полного представления обо всех областях их применения. В частности, Н.В. Апатова пишет: «Информационная технология обучения – процесс подготовки и передачи информации обучаемому, средством осуществления которого является компьютер». Здесь правильнее было бы говорить о компьютерных, а не об информационных технологиях обучения, так как понятие информационных технологий гораздо шире.
В дается следующее определение: «Информационная технология – комплекс методов, способов и средств, обеспечивающих хранение, обработку, передачу и отображение информации и ориентированных на повышение эффективности и производительности труда».
Под информационными технологиями в широком смысле будем понимать совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления (информационного продукта).
Существенным отличием информационных технологий от других областей науки и производства является то, что они претерпевают постоянные изменения, вызванные бурным развитием средств компьютерной техники и современной связи. Сегодня говорят не просто об информационных технологиях, а о современных или новых информационных технологиях (НИТ). Их основу, по мнению А.Н. Богатырева, А.В. Коптелова и Г.Н. Некрасовой, составляют пять технических достижений:
Появление новой среды накопления информации на машиночитаемых носителях.
Развитие средств связи, обеспечивающих доставку информации практически в любую точку земного шара без существенных ограничений во времени и расстоянии, широкий охват населения средствами связи.
Динамичное развитие микропроцессорной техники, обеспечивающей возможность цифровой обработки информации.
Возможность автоматизированной обработки информации с помощью компьютера по заданным алгоритмам.
Возникновение и бурное развитие сети Интернет.
Итак, новыми информационными технологиями обучения будем называть совокупность электронных средств и способов их функционирования, используемых для реализации обучающей деятельности. Технологии, которые существовали до появления вычислительной, микропроцессорной техники, будем называть традиционными информационными технологиями. Они по-прежнему успешно применяются в образовании и вряд ли будут полностью вытеснены новыми информационными технологиями.
Что же является целью информационной технологии? В находим: «Цель информационной технологии – производство информации, удовлетворяющей информационные потребности человека. Чаще всего эти потребности связаны с принятием решений в таких сферах, как познание, общение, практическая (производственная) деятельность». В этой же работе отмечается, что отличительной особенностью технологии является то, что применение одной и той же технологии к одинаковому исходному «сырью» дает в результате «продукт» одного и того же качества. С другой стороны, применяя разные технологии к одному и тому же ресурсу, можно получить разные продукты.
Подобно тому, как в материальной технологии выделяются ее составляющие (материаловедение, проектирование, производственные процессы, инструментарий, техника безопасности и охрана труда, теория управления предприятием), так и информационную технологию можно разделить на части: теория информации, моделирование и формализация, информационные процессы, информационные системы, информационная безопасность и информационное управление.
Информационная технология, как и любая другая, должна отвечать следующим требованиям:
обеспечивать высокую степень разделения всего процесса обработки информации на этапы, операции, действия;
включать весь набор элементов, необходимых для достижения поставленной цели;
иметь регулярный характер.
Этапы, действия, операции технологического процесса могут быть стандартизированы и унифицированы, что позволит более эффективно осуществлять целенаправленное управление информационными процессами.
На сегодняшний день существуют различные подходы к проблеме классификации информационных технологий. Приведем несколько классификаций. В выделяются следующие виды информационных технологий:
информационная технология обработки данных,
информационная технология управления,
автоматизация офиса,
информационная технология поддержки принятия решений,
информационная технология экспертных систем.
В информационные технологии подразделяют на различные виды следующим образом:
функционально-ориентированные информационные технологии, предназначенные для реализации определенных задач,
предметно-ориентированные информационные технологии, предназначенные для решения конкретных задач в определенной предметной области,
проблемно-ориентированные информационные технологии, предназначенные для решения типовых прикладных задач.
Мы будем придерживаться классификации, приведенной авторами учебника, которая составлена в зависимости от формы представления обрабатываемой информации:
технологии обработки текстовой информации,
технологии обработки числовой информации,
технологии обработки графической информации,
технологии обработки звуковой информации,
технологии работы в глобальных сетях,
социальные информационные технологии.
Выбор данной классификации объясняется тем, что сложилась традиция обучать школьников и студентов именно этим видам информационных технологий.
Информационные ресурсы являются базой для создания информационных продуктов. Любой информационный продукт отражает информационную модель его производителя и воплощает его собственное представление о конкретной предметной области, для которой он создан. Информационный продукт, являясь результатом интеллектуальной деятельности человека, должен быть зафиксирован на материальном носителе любого физического свой ства в виде документов, статей, обзоров, программ, книг и т. д.
Информационный продукт — совокупность данных, сформированная производителем для распространения в вещественной или невещественной форме.
Информационный продукт может распространяться такими же способами, как и любой другой материальный продукт, с помощью услуг.
Услуга— результат непроизводственной деятельности предприятия или лица, направленный на удовлетворение потребности человека или органи зации в использовании различных продуктов.
Информационная услуга — получение и предоставление в распоряжение пользователя информационных продуктов.
В узком смысле информационная услуга часто воспринимается как услуга, получае мая с помощью компьютеров, хотя на самом деле это понятие намного шире.
При предоставлении услуги заключается соглашение (договор) между двумя сторона ми — предоставляющей и использующей услугу. В договоре указываются срок ее использо вания и соответствующее этому вознаграждение.
Перечень услуг определяется объемом, качеством, предметной ориентацией по сфере использования информационных ресурсов и создаваемых на их основе информационных продуктов.
Предоставление первоисточника является традиционной услугой библиотечных служб. Эта услуга предусматривает не только выдачу первоисточников, но и их копий, полученных с помощью устройств различного принципа действия.
Традиционные услуги научно-технической информации осуществляются по предварительному заказу и включают в себя:
подготовку обзоров в виде рукописей;
подготовку переводов текстов.
Дистанционный доступ к удаленным базам данных организуется в компью терной сети в диалоговом режиме. Популярность услуг дистанционного доступа к базам данных нарастает быстрыми темпами и опережает все виды других услуг благодаря:
все большему числу пользователей, овладевших информационной технологией работы в коммуникационной среде компьютерных сетей;
высокой оперативности предоставления услуг;
возможности отказа от собственный информационных систем.
Традиционно основными пользователями услуг дистанционного доступа к базам дан ных являются организации. Однако за последние годы наметилась тенденция к существен ному увеличению числа индивидуальных пользователей.
В основном эти услуги предоставляются специальными организациями, называемыми вычислительными центрами коллективного пользования, располагающими мощными ЭВМ с внешней памятью более сотен гигабайт и лазерными принтерами. Дистанционный доступ к базам данных может быть предоставлен по подписке на основе абонементной платы или по договорам. Схема оплаты Может быть разная, но в основном это почасовая оплата, зави сящая от объема получаемой информации.
Услуги дистанционного доступа к базам данных можно классифицировать следую щим образом:
непосредственный доступ к базам данных может быть организован с ло кального места пользователя только при условии его обученности работе в коммуни кационной среде. В противном случае следует воспользоваться услугами, предоставляемыми специальными организациями;
косвенный доступ включает организацию обучения пользователей, выпуск бюллетеня новостей, организацию справочной службы, организацию встреч с пользо вателем для выяснения интересующих его вопросов, рассылку вопросников пользова телям;
услуга down loading позволяет загрузить результаты поиска в центральной базе данных в свой персональный компьютер для дальнейшего использования в качестве персональной базы данных;
регулярный поиск предусматривает регулярное проведение поиска в массивах одной или нескольких центральных баз данных и предоставление результатов поиска на терминал пользователю в удобное для него время.
Подготовка и оказание информационных услуг:
· связь (телефонная, телекоммуникационная) для предоставления осуществляемых в форме передачи данных информационных услуг;
· обработка данных в вычислительных центрах;
· программное обеспечение;
· разработка информационных систем;
· разработка информационных технологий.
Вариант 9.
а) Системы счисления. Двоичная система счисления. Понятие о машинном коде и языке Ассемблера. Коды ASII.
Системы счисления. Для начала проведем границу между числом и цифрой. Число это некоторая абстрактная сущность для описания количества. Цифры это знаки используемые для записи чисел. Цифры бывают разные, самыми распространенными являются арабские цифры, они представляются известными знаками от нуля (0) до девяти (9), еще распространены римские цифры, мы их можем иногда встретить на циферблате часов или в обозначении века (IXX век).
Итак запомним: число, это абстрактная мера количества, цифра это знак для записи числа.
Существует множество способов записи чисел с помощью цифр. Эти способы грубо можно разделить на две части:
позиционные системы счислений;
непозиционные системы счислений.
Позиционные системы счислений мы рассмотрим более подробно ниже. Расскажем вкратце о непозиционных системах счислениях.
Непозиционные системы счислений. В непозиционной системе счисления величина числа не зависит от положения цифры в представлении числа. Если бы мы перемешали цифры в числе 603121200000, то мы бы не смогли понять сколько стоит пылесос, в непозиционной системе такого не случиться. Ярким примером непозиционной системы счисления является римская система
Позиционные системы счислений. Чем хороши позиционные системы счисления? Тем, что они позволяют легко производить арифметические расчеты. Попробуйте считать используя, например римские цифры. Сколько будет ? То-то, а вот достаточно представить эти числа арабскими цифрами и мы легко сможем посчитать в столбик .
Представление чисел с помощью арабских цифр самая распространенная позиционная система счисления, она называется «десятичной системой счисления». Десятичной системой она называется потому, что использует десять цифр. Вот эти цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Внимательно их пересчитайте — их ровно десять. Замете: максимальная цифра (9) на единичку меньше количества цифр (10).
Компьютер, в отличии от человека, хорошо разбирается в двоичной системе, он использует цифры: 0 и 1. Обратите внимание, что и здесь: система двоичная, а максимальная цифра 1.
Программисты пользуются, для упрощения себе жизни, еще восьмеричной и шестнадцатеричной системами счисления.
Количество цифр используемых в системе счисления называется «основанием». В десятичной системе основание равно десяти, в двоичной системе основание равно двум, ну а в восьмеричной и шестнадцатеричной соответственно восьми и шестнадцати.
В общем случае в позиционной системе счисления числа представляются следующим образом: (anan − 1...a0)f, где a0,a1,...,an - цифры, а f - основание системы счисления. Если используется десятичная система, то f — можно опустить
Двоичная система счисления. Двоичная система счисления, т.е. система с основанием h=2, является «минимальной» системой, в которой полностью реализуется принцип позиционности в цифровой форме записи чисел. В двоичной системе счисления значение каждой цифры «по месту» при переходе от младшего разряда к старшему увеличивается вдвое.
История развития двоичной системы счисления – одна из ярких страниц в истории арифметики. Официальное «рождение» двоичной арифметики связывают с именем Г. В. Лейбница, опубликовавшего статью, в которой были рассмотрены правила выполнения всех арифметических операций над двоичными числами. До начала тридцатых годов XX века двоичная система счисления оставалась вне поля зрения прикладной математики. Потребность в создании надежных и простых по конструкции счетных механических устройств и простота выполнения действий над двоичными числами привели к более глубокому и активному изучению особенностей двоичной системы как системы, пригодной для аппаратной реализации. Первые двоичные механические вычислительные машины были построены во Франции и Германии. Утверждение двоичной арифметики в качестве общепринятой основы при конструировании ЭВМ с программным управлением состоялось под несомненным влиянием работы А. Бекса, Х. Гольдстайна и Дж. Фон Неймана о проекте первой ЭВМ с хранимой в памяти программой, написанной в 1946 году. В этой работе наиболее аргументированно обоснованы причины отказа от десятичной арифметики и перехода к двоичной системе счисления как основе машинной арифметики.
В двоичной системе счисления используются только два символа, что хорошо согласуется с техническими характеристиками цифровых схем. Действительно очень удобно представлять отдельные составляющие информации с помощью двух состояний:
Отверстие есть или отсутствует (перфолента или перфокарта);
Материал намагничен или размагничен (магнитные ленты, диски);
Уровень сигнала большой или маленький.
Существуют специальные термины, широко используемые в вычислительной технике: бит, байт и слово.
Битом называют один двоичный разряд. Крайний слева бит числа называют старшим разрядом (он имеет наибольший вес), крайний справа – младшим разрядом (он имеет наименьший вес).
Восьмибитовая единица носит название байта.
Совершенно очевидно, что двоичное число представляется последовательностью нулей и единиц – разрядов. Как и в любой позиционной системе, каждому разряду присвоен определенный вес – показатель степени основания системы.
В двоичной системе счисления даже сравнительно небольшие числа занимают много позиций.
Как и в десятичной системе, в двоичной системе счисления для отделения дробной части используется точка (двоичная точка). Каждая позиция слева от этой точки также имеет свой вес – вес разряда дробной части числа. Значение веса в этом случае равно основанию системы счисления (т.е. двойке), возведенному в отрицательную степень.
Получить десятичное число из двоичного чрезвычайно просто. Согласно формуле для двоичной системы счисления получаем:
Метод деления.Разделим нацело десятичное число на двойку. Если есть остаток, запишем в младший разряд единицу, а если нет – нуль и снова разделим результат от первого деления. Повторим процедуру так до тех пор, пока окончательный результат не обнулиться.
Метод вычитания. Из десятичного числа вычитаются наибольшая возможная степень двойки, в соответствующий разряд двоичного числа записывается единица, если разность меньше следующей степени двойки, то далее записывается нуль, а если больше записывается единица и опять производится вычитание, и так до тех пор, пока исходное число не уменьшится до нуля.
И, наконец, метод умножения. Метод применяется для преобразования десятичных дробей (чисел меньших единицы).
Число умножается на 2, если результат 1, то в старший разряд записывается единица, если нет, то нуль. Умножаем на 2 дробную часть результата и повторяем процедуру. И так далее до получения нужной степени точности или до обнуления результата.
Понятие о машинном коде и языке Ассемблера. Машинный язык - система команд, непосредственно понимаемых аппаратурой данной электронно-вычислительной системы. Как следствие этого, машинный язык однозначно определяется системой команд процессора и архитектурой компьютера.
Набор команд процессора содержит:
арифметико-логические команды - команды арифметических действий над двоичными числами и логических действий над двоичными векторами;
команды управления - команды перехода, ветвлений, повторений, и некоторые другие команды;
команды пересылки данных - команды, с помощью которых обмениваются данными ОЗУ и ЦП;
команды ввода-вывода данных - команды, с помощью которых обмениваются данными ЦП и внешние устройства.
Каждая команда содержит код операции, ею выполняемой и информацию об адресах данных, над которыми эта операция выполняется. Кроме этого, команда (непосредственно - команды управления и косвенно - другие команды) содержит информацию об адресе команды, которая будет выполняться следующей. Таким образом, любая последовательность команд, размещенная в ОЗУ, фактически представляет из себя алгоритм, записанный в системе команд процессора - машинную программу.
Наиболее распространенной сейчас является архитектура ЭВМ с общей шиной. Общая шина - это центральная информационная магистраль, связывающая внешние устройства с центральным процессором. Она состоит из шины данных, шины адреса и шины управления. Шина данных предназначена для обмена данными между ОЗУ и внешними устройствами. По шине адреса передаются адреса данных. Эта шина однонаправлена. Шина управления служит каналом обмена управляющими сигналами между внешними устройствами и центральным процессором.
Таким образом, машинный язык (язык процессора) - это набор команд, каждая из которых описывает некоторое элементарное действие по преобразованию информации, представленной в двоичном коде. Универсальное использование двоичного кода представления информации самых разнообразных форм приводит к тому, что программа решения даже достаточно простой задачи содержит сотни машинных команд. Написать такую программу, используя машинные команды, весьма непросто даже квалифицированному программисту. Реальные программы состоят из десятков и сотен тысяч машинных команд. Поэтому любая технология проектирования программы должна опираться на приемы, характерные для человеческого мышления, оперировать привычными для человека понятиями из той предметной области, которой принадлежит задача.
Иными словами, программист (проектировщик алгоритмов) должен иметь возможность сформулировать свой алгоритм на языке привычных понятий; затем специальная программа должна выразить эти понятия с помощью машинных средств, осуществляя перевод (трансляцию) текста алгоритма на язык машины.
Эта необходимость и привела к появлению языков программирования высокого уровня как языков записи алгоритмов, предназначенных для исполнения на ЭВМ.
Машинно-ориентированные языки. Предшественниками языков высокого уровня стали так называемые машинно-ориентированные языки или языки автокодов. Одним из самых ярких представителей машинно-ориентированных языков является Ассемблер. Ассемблер очень близок к машинному языку, большинство его инструкций является точным символическим представлением машинных команд. Преимущество состоит в том, что уже нет необходимости помнить числовые коды команд процессора, достаточно знать их символическое представление. Кроме этого, впервые в машинно-ориентированных языках появляется понятие переменной, как именованной области памяти для хранения данных, а вместе с ним и понятие типа данных. В программах на машинно-ориентированном языке появляется возможность использовать как числовую так и текстовую информацию в привычной для человека форме.
Несмотря на явные преимущества машинно-ориентированных языков перед сугубо машинным языком, написание программ на этих языках по прежнему сопряжено со значительными трудностями. Программы получаются очень громоздки и трудно читаемы.
Языки программирования высокого уровня. Языки программирования высокого уровня играют роль средства связи между программистом и машиной, а также между программистами. Это обстоятельство накладывает на язык многие обязательства:
Язык должен быть близок к тем фрагментам естественных языков, которые обеспечивают конкретную предметную область деятельности человека; (Язык, ориентированный на деловые сферы применений, должен содержать понятия, используемые в этом виде деятельности: документ, счет, база данных и т.п.).
Все средства языка должны быть формализованы в такой степени, чтобы их можно было реализовать как машинные программы; (например, предложение “Найти документ X в базе Y“ должно породить программу в машинном языке, осуществляющую требуемый поиск).
Язык программирования не только поддерживает предметно-ориентированную деятельность, но и стимулирует ее развитие. (понятие базы данных, вычислительной сети привело к революции в деловой деятельности).
Язык программирования - нечто большее, чем средство описания алгоритмов: он несет в себе систему понятий, на основе которых человек может обдумывать свои задачи, и нотацию, с помощью которой он может выразить свои соображения по поводу решения задачи.
Изучая новый язык программирования, лучше всего к нему относиться, как к любому другому иностранному языку: средства языка принимать как данные от Бога, даже если они нам кажутся непонятными, плохими или ненужными
Язык ассемблера — тип языка программирования низкого уровня, это специальная программа, которая преобразует (компилирует) исходные тексты вашей программы, написанной на языке ассемблера, в исполняемый файл (файл с расширением EXE или COM). Если быть точным, то для создания исполняемого файла требуются дополнительные программы, а не только ассемблер. Но об этом позже… Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и аргументов. Также, язык ассемблера обеспечивает связывание частей программы и данныx через метки, выполняемое при ассемблировании (для каждой метки высчитывается адрес, после чего каждое вхождение метки заменяется на этот адрес). Каждая модель процессора, в принципе, имеет свой набор команд и соответствующий ему язык (или диалект) ассемблера. Обычно программы или участки кода пишутся на языке ассемблера в случаях, когда разработчику критически важно оптимизировать такие параметры, как быстродействие (например, при создании драйверов) и размер кода (загрузочные сектора, программное обеспечение для микроконтроллеров и процессоров с ограниченными ресурсами, вирусы, навесные защиты). Связывание ассемблерного кода с другими языками. Большинство современных компиляторов позволяют комбинировать в одной программе код, написанный на разных языках программирования. Это позволяет быстро писать сложные программы используя высокоуровневый язык, не теряя быстродействия в критических ко времени задачах, используя для них части написанные на языке ассемблера. Комбинирование достигается несколькими приемами: Вставка фрагментов на языке ассемблера в текст программы (специальными директивами языка) или написание процедур на языке ассемблера. Способ хороший для несложных преобразований данных, но полноценного ассемблерного кода — с данными и подпрограммами, включая подпрограммы с множеством входов и выходов, не поддерживаемых высокоуровневыми языками, с помощью него сделать нельзя. Модульная компиляция. Большинство современных компиляторов работают в два этапа. На первом этапе каждый файл программы компилируется в объектный модуль. А на втором объектные модули линкуются (связываются) в готовую программу. Прелесть модульной компиляции состоит в том что каждый объектный модуль будущей программы может быть полноценно написан на своем языке программирования и скомпилирован своим компилятором (ассемблером). Синтаксис. Единого стандарта для синтаксиса языков ассемблера не существует, конкретный разработчик волен установить свои собственные синтаксические правила. Однако существуют традиционные подходы, которых придерживаются языки ассемблера для наиболее распространённых процессорных архитектур, своего рода стандарт de facto. Так основными стандартами являются стандарты — Intel и AT&T. Каждая инструкция записывается в отдельной строке. Полный формат каждой строки инструкций следующий: label: code ; comment где label — название метки; code — собственно, инструкция языка ассемблера; comment — комментарий. При этом один или два компонента строки могут отсутствовать, то есть строка может состоять, к примеру, только из комментария, или содержать только метку или инструкцию. Объекты, над которыми производятся действия, это регистры процессора и участки оперативной памяти. Обозначения для них также являются частью синтаксиса. Ассемблерная инструкция, состоит из мнемоники команды и списка аргументов через запятую (один, два или три в зависимости от инструкции). Мнемоникой команды служит трёх- или четырёхбуквенными сокращениями их аналогов, обычно на английском языке, например: jmp — продолжать выполнение с нового адреса памяти (от англ. jump - прыжок) mov — переместить данные (от англ. move - передвинуть) sub — получить разность двух значений (от англ. subtract - вычесть) xchg — обменять значения в регистрах/ячейках памяти (от англ. exchange - обмен) От ассемблера к ассемблеру меняется синтаксис аргументов, но мнемоники, обычно, остаются одинаковыми (такими какие используются в оригинальной спецификации процессора), за исключением двух случаев: Если ассемблер использует кроссплатформенный AT&T-синтаксис, то оригинальные мнемоники приводятся к синтаксису AT&T. Если изначально существовало два стандарта записи мнемоник (система команд была наследована от процессора другого производителя). Например процессор Zilog Z80 наследовал систему команд Intel i8080, расширил ее и поменял мнемоники (и обозначения регистров) на свой лад. Например сменил интеловские «mov» на «ld» (команда перемещения данных). Процессоры Motorola Fireball наследовали систему команд Z80, несколько её урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel. И в данный момент половина ассемблеров для Fireball работает с интеловскими мнемониками, а половина с мнемониками Zilog. Текст программ может быть дополнен директивами ассемблера (параметры, влияющие на процесс ассемблирования и свойства выходного файла). Каждый ассемблер имеет собственные директивы. Для упрощения и ускорения написания программ на языке ассемблера служат макросы. Достоинства языка ассемблера. Максимально оптимальное использование средств процессора, использование меньшего количества команд и обращений в память, и как следствие — большая скорость и меньший размер программы Использование расширенных наборов инструкций процессора (MMX, SSE, SSE2, SSE3) Доступ к портам ввода-вывода и особым регистрам процессора (в большинстве ОС эта возможность доступна только на уровне модулей ядра и драйверов) Возможность использования самомодифицирующегося (в том числе перемещаемого) кода (под многими платформами эта возможность недоступна, так как запись в страницы кода запрещена, в том числе и аппаратно, однако в большинстве общедоступных систем из-за их врожденных недостатков имеется возможность исполнения кода содержащегося в сегменте (секции) данных, куда запись разрешена) Максимальная «подгонка» для нужной платформы NB: Последние технологии безопасности, внедряемые в операционные системы и компиляторы, не позволяют делать самомодифицирующего кода, так как исключают одновременную возможность исполнения программы и запись в одном и том же участке памяти (технология W^X). Технология W^X используется в OpenBSD (где и появилась), в других BSD-системах, в Linux; в Microsoft Windows (начиная с Windows XP SP2) используется схожая технология DEP. Недостатки. Большие объемы кода, большое число дополнительных мелких задач, меньшее количество доступных для использования библиотек, по сравнению с языками высокого уровня Трудоёмкость чтения и поиска ошибок (хотя здесь многое зависит от комментариев и стиля программирования) Зачастую компилятор языка высокого уровня, благодаря современным алгоритмам оптимизации, даёт более эффективную программу (по соотношению качество/время разработки). Непереносимость на другие платформы (кроме совместимых). Ассемблер более сложен для совместных проектов. Пример программы на языке ассемблера. Пример программы для операционной системы DOS на процессоре семейства Intel x86, выдающей на экран приветствие (написан на TASM): mov bx,1 ; указание направления вывода (на экран) mov cx,13 ; указание количества символов строки mov dx,offset msg ; поместить в регистр DX смещение строки mov ah,40h ; выбор функции вывода строки int 21h ; вызов прерывания DOS "Набор процедур" для вывода строки int 20h ; вызов прерывания DOS (завершение программы) msg DB 'Hello, World!$' msg — метка (идентификатор), упрощающая доступ к данным. Происхождение и критика термина «язык ассемблера» Данный тип языков получил свое название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик). Название последнего обусловлено тем, что на древних компьютерах не существовало языков более высокого уровня, и единственной альтернативой созданию программ с помощью ассемблера было программирование непосредственно в кодах. Язык ассемблера в русском языке часто называют «ассемблером» (а что-то связанное с ним — «ассемблерный»), что, согласно английскому переводу слова, неправильно, но вписывается в правила русского языка. Однако, сам ассемблер (программу) тоже называют просто «ассемблером», а не «компилятором языка ассемблера» и т.п. Использование термина «язык ассемблера» также может вызвать ошибочное мнение о существовании единого языка низкого уровня, или хотя бы стандарта на такие языки. При именовании языка, на котором написана конкретная программа, желательно уточнять, для какой архитектуры она предназначена и на каком диалекте языка написана.
