Меню
Главная
УСЛУГИ
Авторизация/Регистрация
Реклама на сайте
 
Главная arrow Информатика arrow Информационные технологии
< Предыдущая   СОДЕРЖАНИЕ   Следующая >

Лекция 8. Инструментальная база информационных технологий

Орудия производства в виде инструментов и технологической оснастки являются необходимой составляющей любой технологии. Не являются исключением и информационные технологии, функционирующие на основе инструментальной базы, включающей программные, технические и методические средства. Главным фактором успешного развития и внедрения технологии на промышленном уровне является унификация и стандартизация всех компонентов, в том числе и инструментальной базы. Проведенный анализ всех составляющих инструментальной базы показывает существующие тенденции их развития, позволяет ориентироваться на сложившемся рынке вычислительных и сетевых видов продукции. Для вхождения в единое информационное пространство необходимо ориентироваться па мировые стандарты, которым уделено значительное внимание при рассмотрении методических средств.

Программные средства информационных технологий

Программные средства информационных технологий можно разделить на две большие группы: базовые и прикладные.

Базовые программные средства относятся к инструментальной страте информационных технологий и включают в себя:

• операционные системы (ОС);

• языки программирования;

• программные среды;

• системы управления базами данных (СУБД).

Прикладные программные средства предназначены для решения комплекса задач или отдельных задач в различных предметных областях. Подробно они рассмотрены в гл. 6.

ОС предназначены для управления ресурсами ЭВМ и процессами, использующими эти ресурсы. В настоящее время существуют две основные линии развития ОС: Windows и Unix. Генеалогические линии данных ОС развивались следующим образом:

1. СР/М → QDOS → 86-DOS → MS-DOS → Windows;

2. Multics → UNIX → Minix → Linux.

В свою очередь каждый элемент линии имеет свое развитие, например, Windows развивался в такой последовательности: Windows 95, 98, Me, NT, 2000. Соответственно, Linux развивался следующим образом: версии 0.01, 0.96, 0.99, 1.0, 1.2, 2.0, 2.1, 2.1.10. Каждая версия может отличаться добавлением новых функциональных возможностей ( сетевые средства, ориентация на разные процессоры, многопроцессорные конфигурации и др.).

Большинство алгоритмических языков программирования (Си, Паскаль) созданы на рубеже 60-х и 70-х годов (за исключением Java). За прошедший период времени периодически появлялись новые языки программирования, однако на практике они не получили широкого и продолжительного распространения. Другим направлением в эволюции современных языков программирования были попытки создания универсальных языков (Алгол, PL/1, Ада), объединявших в себе достоинства ранее разработанных.

Появление ПК и ОС с графическим интерфейсом (Mac OS, Windows) привело к смещению внимания разработчиков программного обеспечения в сферу визуального или объектно-ориентированного программирования, сетевых протоколов, баз данных. Это привело к тому, что в настоящее время в качестве инструментальной среды используется конкретная среда программирования (Delphi, Access и др.) и знания базового языка программирования нс требуется. Поэтому можно считать, что круг используемых языков программирования стабилизировался.

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

Стандартизацию языков программирования в настоящее время осуществляют комитеты ISO/ANSI, однако их деятельность направлена в основном на неоправданное синтаксическое расширение языков. Для исключения существующих недостатков предложены способы задания семантического и синтаксического стандартов языков программирования.

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

• список компонент (в Типе Указателя это компоненты Имя Типа и Базовый Тип);

• описание каждой компоненты;

• описание конструкции в целом.

Для синтаксического описания обычно используется формальное описание конструкции, например, в виде БНФ. Синтаксическое описание присутствует в любом языке, начиная с Алгола.

Среди большого числа языков самую заметную роль в развитии программирования сыграли три пары: Алгол-60 и Фортран, Паскаль и Си, Java и Си++. Эти языки не случайно объединены в пары, так как противостояние заложенных в них идей способствовало прогрессивному развитию.

В табл. 8.1 приведены основные сведения о наиболее распространенных языках, а в табл. 8.2 – о языках специального назначения (экспериментальных и промышленных) [39]. Виды (парадигмы) языков по областям применения:

Таблица 8.1

Язык программирования

Год

создания

Вид

Фирма

Стандарт

Фортран (FORTRAN)

1954

А

IBM

ISO 1539.1997

Лисп (LISP)

1958

F

MIT

Алгол-60(Algol 60)

1960

А

1FIP

Кобол (COBOL)

1960

А

COLASYL

Commitete

ISO 1989:1985

Симула (Sumula)

1962

В

–*

Бейсик (BASIC)

1963

А

Darmouth

College

ISO 10279:1991

ПЛ/1 (PL/1)

1964

А

IBM

ISO 6160:1979

Алгол-68 (Algol 68)

1968

А

IF1P

Паскаль (Pascal)

1970

С

ETH

ISO 7185:1990

Форт (FORTH)

1970

А*

Mohasco

Industrie

ISO 15145:19)7

Си (С)

1972

С*

AT&T Bell Labs

ISO 9899:1999

Smalltalk

1972

В

Xerox PARC

Пролог (Prolog)

1973

Е

Univ. of Aix-Marseille

ISO 13211:1995

Ала (Ada)

1980

Н*

Cil Hon ewe11

ISO 8652:1995

Си++

1984

Н*

AT&T Bell Labs

ISO 14882:1998

Java

1995

Н

Sun Labs

* Поддержка системного программирования.

Таблица 8.2

Язык программирования

Год

создания

Вид

Фирма

Стандарт

АПЛ (APL)

1957

I

Harvard Univ

ISO 8485:1989

Снобол (Shobol)

1962

I

AT&T Bell Labs

Сетл (SETL)

1969

I

IBM

Параллельный Паскаль Concurrent Pascal

1974

G

CIT

CLU

1974

D

MIT

Schema

1975

F

M1T

Mesa

1976

D*

Xerox PARC

Icon

1977

I

AT&T Bell Labs

Молула-2 (Modula-2)

1979

D*

ETH

ISO 10514:1996

Оккам (Occam)

1982

G*

Inmos

Cedar

1983

H*

Xerox PARC

Common Lisp

1984

F

MIT

Objective C

1984

H*

Productivity

Products

Эйфель (Eiffel)

1986

D*

ISE

Оберон (Obcron)

1988

D*

ETH

Модула-3 (ModuIa-3)

1988

H*

DEC SRC

Оберон 2 (Obcron-2))

1991

D*

ETH

Limbo

1996

D*

Bell Labs (Lucent)

Component Pascal

1997

D*

Microsystems

C#

2000

H*

*См. тайл. 8.1.

А – процедурное программирование;

В – объектно-ориентированное программирование;

С – структурное программирование;

D – модульное (компонентное программирование);

Е – логическое (реляционное) программирование;

F – функциональное программирование;

G – параллельное программирование;

Н – гибрид (смесь парадигм B+C+D+G);

I – специализированный язык.

Сокращения, встречающиеся в табл. 8.1 и 8.2: MIT – Massachsetts Institute of Technology; PARC – Palo Alto Research Center; ETH – Swiss Federal Institute of Technology; SRC – Systems Research Center; ISE – Interactive Software Engeneering; ISO – International Standard Organisation; CIT – California Institute of Technology.

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

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

Схема компиляции

Рис. 8.1. Схема компиляции

Схема интерпретации

Рис. 8.2. Схема интерпретации

1. Использование общих конструкций (область пересечения), исключение специфических конструкций языков (область объединения). Это приведет к "обеднению" всех языков программирования.

2. Использование всех имеющихся конструкций (область объединения + область пересечения). Такой подход приведет к значительному расширению семантической базы и использованию дополнительных ресурсов.

Многие годы идет спор о том, что такое программирование – наука, искусство или производственный процесс. Надо признать, что право на существование имеют все три определения. Однако в связи с появлением информационных технологий на первый план выходит промышленный характер программирования, который соответствует традиционным стадиям жизненного цикла программного продукта:

• анализ требований;

• разработка спецификаций;

• проектирование;

• макетирование;

• написание исходного текста;

• отладка;

• документирование;

• тестирование и сопровождение.

Наряду с этим направлением развивается так называемое исследовательское программирование. Например, предложенное Э. Раймондом самоорганизующееся, анархичное программирование, получившее название "базар". Отличительными чертами его являются отсутствие четкого плана, минимальное управление проектом, большое число сторонних территориально удаленных разработчиков, свободный обмен идеями и кодами.

Программные среды реализуют отдельные задачи и операции информационных технологий. К их числу относятся:

Области пересечения и объединения языков программирования

Рис. 8.3. Области пересечения и объединения языков программирования

1. Текстовые процессоры: Microsoft Word, Лексикон, Lotus Word Perfect, Corel Word Pro, Sun Star Office Writer и др.;

2. Электронные таблицы: Microsoft Excel, Corel Quattro Pro, Lotus 1-2-3, Sun Star Office Calc и др.;

3. Личные информационные системы: Microsoft Outlook, Lotus Organizer, Lotus Notes, Sun Star Office Schedule и др.;

4. Программы презентационной графики: Microsoft Power Point, Lotus Freelance Graphics, Corel Presentations, Sun Star Office Impress и др.;

5. Браузеры: Microsoft Internet Explorer, Netscape Navigator, Opera и др.;

6. Редакторы WEB-страниц: Microsoft Front Page, Netscape Composer, Macromedia Free Hand и др.;

7. Почтовые клиенты: Microsoft Outlook, Microsoft Outlook Express, Netscape Messenger, The Bat и др.;

8. Редакторы растровой графики: Adobe Photoshop, Corel Photo-Paint и др.;

9. Редакторы векторной графики: Corel Draw, Adobe Illustrator и др.;

10. Настольные издательские системы: Adobe Page Maker, Quark Xpress, Corel Ventura, Microsoft Publisher и др.;

11. Средства разработки: Borland Delphi, Microsoft Visual Basic, Borland C++ Builder, Microsoft Visual C++ и др.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 
Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Журналистика
Инвестирование
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Политэкономия
Право
Психология
Религиоведение
Риторика
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика