Сделай Сам Свою Работу на 5

ПРОГРАММНЫЕ СРЕДСТВА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

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

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

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

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

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

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

Прикладные программные средства предназначены для реше­ния комплекса задач или отдельных задач в различных предметных областях. Подробно они рассмотрены в гл. 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) A IBM ISO 1539:1997
Лисп (LISP) F MIT -
Алгол-60 (Algol 60) A IFIP -
Кобол (COBOL) A COLASYL ISO 1989:1985
      Commitete  
Симула (Sumula) B - -
Бейсик (BASIC) A Darmouth ISO 10279:1991
      College  
ПЛ/1 (PL/1) A IBM ISO 6160:1979
Алгол-68 (Algol 68) A IFIP -
Паскаль (Pascal) C ETH ISO 7185:1990
Форт (FORTH) A* Mohasco ISO 15145:1997
      Industrie  
Си (С) C* AT&T Bell Labs ISO 9899:1999
Smalltalk B Xerox PARC -
Пролог (Prolog) E Univ. of ISO 13211:1995
      Aix-Marseille  
Ада (Ada) H* Cil Honewell ISO 8652:1995
Си++ H* AT&T Bell Labs ISO 14882:1998
Java H Sun Labs -

 

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

Таблица 8.2

 

Язык программирования Год создания Вид Фирма Стандарт
АЛЛ (APL) I Harvard Univ ISO 8485:1989
Снобол (Shobol) I AT&T -
      Bell Labs -
Сетл (SETL) I IBM -
Параллельный Паскаль G CIT -
Concurrent Pascal       -
CLU D MIT -
Schema F MIT -
Mesa D* Xerox PARC -
Icon I AT&T -
      Bell Labs  
Модула-2 (Modula-2) D* ETH ISO 10514:1996
Оккам (Occam) G* Inmos -
Cedar H* Xerox PARC -
Common Lisp F MIT -
Objective С H* Productivity -
      Products -
Эйфель (Eiffel) D* ISE -
Оберон (Oberon) D* ETH -
Модула-3 (Modula-3) H* DEC SRC -
Оберон 2 (Oberon-2)) D* ETH -
Limbo D* Bell Labs -
      (Lucent) -
Component Pascal D* Microsystems -
C# 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. Схема интерпретации

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

 

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

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

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

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

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

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

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

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

• отладка;

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

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

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

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

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++ и др.

 

 



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.