Сравнительные характеристики, назначение и возможности современных языков программирования.
Fortran (Фортран). Это первый компилируемый язык, созданный в 50-е годы. В Фортране впервые был реализован ряд важнейших понятий программирования. Удобство создания программ было положено в основу возможностей языка. Фортран продолжает активно использоваться во многих организациях.
Cobol (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес - задач, разработанный в начале 60-х годов. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях.
Algol (Алгол). Компилируемый язык, созданный в 1960г. В 1968г. была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования.
Pascal (Паскаль). Язык Паскаль, созданный в конце 70-х годов, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов. Дальнейшим развитием этого языка явилась более эффективная версия – Object Pascal, который лег в основу современного объектно-ориентированного языка программирования Delphi.
Basic (Бейсик). Этот язык по популярности занимает первое место в мире. Для этого языка имеются и компиляторы, и интерпретаторы. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении. Дальнейшим развитием этого языка явился язык объектно-ориентированного программирования (ООП) VISUAL BASIC FOR APPLICATION
С (Си). Данный язык был создан в лаборатории Bell (США). Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора. Язык Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).
C++ (Си++). Этот язык, являющийся объектно-ориентированным, - расширение языка Си был разработан в 1980 г. В нем реализовано множество новых мощных возможностей, которые позволили резко повысить производительность труда программистов, однако создание сложных и надежных программ требует от разработчиков профессиональной подготовки высокого уровня.
Java (Ява). Этот язык был создан компанией Sun (США) в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Главная особенность этого языка - компиляция не в машинный код, а в платформенно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора - виртуальной Java-машины JVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику; созданию платформенно - независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами.
C#. По технологическим показателям подобен языку Java и находится между компилируемыми и интерпретируемыми языками. Программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код. Далее байт-код выполняется виртуальной машиной.
Области применения современных ЭВМ настолько обширны и разнообразны, что существует большое число специализированных языков в различных областях науки и техники. Например, язык программирования баз данных SQL, язык разметки гипертекста HTML, язык программирования задач компьютерного инженерного анализа APDL системы ANSYS и другие.
Языки программирования баз данных
Эта группа языков отличается от алгоритмических языков, прежде всего решаемыми задачами. База данных - это файл (или группа файлов), представляющий собой упорядоченный набор записей, имеющих единообразную структуру и организованных по единому шаблону (как правило, в табличном виде). База данных может состоять из нескольких таблиц. Удобно хранить в базах данных различные сведения из справочников, картотек, журналов бухгалтерского учета и т. д. Для этого был создан структурированный язык запросов SQL (Structured Query Language). Он основан на мощной математической теории и позволяет выполнять эффективную обработку баз данных, манипулируя не отдельными записями, а группами записей.
Для управления большими базами данных и их эффективной обработки разработаны СУБД (Системы Управления Базами Данных). Практически в каждой СУБД помимо поддержки языка SQL имеется свой уникальный язык, ориентированный на особенности этой СУБД и не переносимый на другие системы. Сегодня в мире насчитывается пять ведущих производителей СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Их продукты нацелены на поддержку одновременной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах.
С появлением персональных компьютеров были созданы так называемые настольные СУБД. Родоначальником современных языков программирования баз данных для ПК принято считать СУБД dBase II, язык которой был интерпретируемым. Затем для него были созданы компиляторы, появились СУБД FoxPro и Clipper, поддерживающие диалекты этого языка. Сегодня похожие, но несовместимые версии языков семейства dBase реализованы в продуктах Visual FoxPro фирмы Microsoft и Visual dBase фирмы Inprise.
Языки программирования для Интернета
С активным развитием глобальной сети было создано немало популярных языков программирования, адаптированных специально для Интернета. Все они отличаются характерными особенностями: языки являются интерпретируемыми, интерпретаторы для них распространяются бесплатно, а сами программы - в исходных текстах. Такие языки называют скрипт-языками.
HTML. Общеизвестный язык для оформления документов. Он очень прост и содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц. Все Web-страницы написаны на языке HTML или используют его расширения.
Perl. Был разработан в 80-х годах Ларри Уоллом. По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и др.
VRML. Был создан в1994 г. для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры (покрытия объектов), вращать в любых направлениях, масштабировать, регулировать освещенность и т. д.
Языки моделирования
При создании программ и формировании структур баз данных нередко применяются формальные способы их представления - формальные нотации, с помощью которых можно визуально представить таблицы баз данных, поля, объекты программы и взаимосвязи между ними в системе, имеющей специализированный редактор и генератор исходных текстов программ на основе созданной модели. Такие системы называются CASE-системами. В них активно применяются нотации IDEF, а в последнее время все большее распространение получает UML.
Языки визуального программирования интерфейса
Программирование вручную привычных пользователю окон, кнопок, меню, обработка событий мыши и клавиатуры, включение в программы изображений и звука требовало все больше и больше времени программиста. Выход из этой ситуации обозначился благодаря двум подходам.
Первый - стандартизация многих функций интерфейса, благодаря чему появилась возможность использовать библиотеки, имеющиеся, например, в Windows. В итоге при смене стиля графического интерфейса приложения смогли автоматически приспосабливаться к новой системе без какого-либо перепрограммирования.
Вторым революционным шагом явилось появление визуального программирования, возникшего в Visual Basic и нашедшего блестящее воплощение в Delphi и С++Builder фирмы Borland. Визуальное программирование позволило свести проектирование пользовательского интерфейса к простым и наглядным процедурам, которые дают возможность за минуты или часы сделать то, на что ранее уходили месяцы работы.
Из универсальных языков программирования сегодня наиболее популярны следующие: Бейсик (Basic), Паскаль (Pascal), Си++ (C++), Ява (Java), Дельфи (Delphi), С#. Для каждого из этих языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами. Наиболее популярны следующие визуальные среды быстрого проектирования программ для Windows:
- Basic: Microsoft Visual Basic;
- Pascal: Borland Delphi;
- C++: Borland C++Bulider;
- Java: Symantec Cafe.
Для разработки серверных и распределенных приложений можно использовать систему программирования Microsoft Visual C++, продукты фирмы Borland, практически любые средства программирования на Java.
Основные этапы технологии программирования
Технологии программированиявключают следующие основные этапы: постановка задачи, разработка математической модели, разработка алгоритма, программирование, отладка программы, передача программы в эксплуатацию и научно-техническое сопровождение (НТС) программы, завершение жизненного цикла:
Постановка задачи
На этом этапе определяются основные цели и функции, выполнение которых должна обеспечивать программа, исходные данные, требования к исходным данным, выходные данные. Математическая постановка задачи сводится к точному описанию исходных данных, условий задачи и целей ее решения с использованием математических выражений в общем виде. При этом должен применяться системный подход, то есть предмет должен быть исследован всесторонне, учтены все внешние и внутренние связи и их влияние на конечные результаты. Задача представляется в виде «черного ящика», на вход которого поступают исходные данные, ограничения на входные параметры, требования к входным и выходным параметрам, а выходом является значения результирующих параметров.
Разработка математической модели
На данном этапе производится декомпозиция задачи, формализация, разработка математической модели, выбор метода решения. Под декомпозицией понимается разделение задачи на простые блоки, каждый из которых может разрабатываться самостоятельно и связан с другими частями программы только входными и выходными данными. Для деления задачи на блоки чаще всего используется функциональный подход. Например, в каждой вычислительной задаче можно выделить такие блоки, как ввод данных, вычислительный блок, блоки сохранения результатов вычислений на дисках, анализа результатов вычислений, графического представления результатов вычислений, печати результатов.
Разработка алгоритма программы
На этом этапе разрабатывается алгоритм решения задачи. Разработка алгоритма предполагает определение состава функциональных модулей и формирование общей схемы алгоритма, разработку алгоритмов функциональных модулей. В зависимости от сложности задачи алгоритм представляют вначале в общем виде (укрупненном). Затем каждый из блоков алгоритма разбивается на более мелкие задачи таким образом, чтобы на конечном этапе получить базовые схемы алгоритмов. Такой метод проектирования называется нисходящей разработкой алгоритма (проектирования).
Основные подходы к разработке алгоритмов и программ: структурное проектирование; информационное моделирование предметной области и связанных с ней приложений; объектно-ориентированное проектирование.
В основе структурного проектирования лежит последовательная декомпозиция, целенаправленное структурирование на отдельные составляющие. Типичными методами структурного проектирования являются: нисходящее проектирование, кодирование и тестирование программ; модульное программирование; структурное программирование.
Модульное программирование основано на понятии модуля. Модуль – логически взаимосвязанная совокупность функциональных элементов, оформленных в виде отдельных программных модулей, имеющих один вход и один выход. Структурное программирование основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных различных программных модулей. Структурное программирование применяется в основном при программировании отдельных модулей и заключается в переводе алгоритма программы на алгоритмический язык с использованием определенных конструкций языка программирования.
Информационное моделирование предметной области и связанных с ней приложений предполагает определение состава и способа представления исходных данных и результатов вычислений.
Объектно-ориентированное проектирование основано на использовании при программировании объектов − функциональных программных модулей, которые на экране монитора представлены в виде элементов, например, кнопок, списков, переключателей и т. п., обладающих определенной совокупностью свойств, методов и событий.
Программирование
Программа – упорядоченная последовательность команд (предписаний) компьютера для решения задач. В общетеоретическом плане программирование – это теоретическая и практическая деятельность, связанная с созданием программы. В узком смысле под программированием понимается запись алгоритма с использованием команд и операторов одного из языков программирования – кодирование.
Отладка программы
Отладка программы заключается в проверке правильности функционирования алгоритма решения задачи с помощью контрольных примеров – тестов, результаты решения которых заранее известны; устранении обнаруженных синтаксических и логических ошибок.
Научно-техническое сопровождение
Научно-техническое сопровождение программы предусматривает контроль над работой программы и устранение ошибок, обнаруженных в процессе эксплуатации, доработку программы и ее совершенствование в соответствии с требованиями заказчика.
Свойства алгоритмов
Алгоритм - это точно определенная (однозначная) последовательность простых (элементарных) действий, обеспечивающих решение любой задачи из некоторого класса. Алгоритмам характерны следующие общие свойства:
1) дискретность - алгоритм можно разделить на отдельные шаги (действия), выполнение каждого из которых возможно только после завершения всех операций на предыдущем шаге;
2) детерминированность - совокупность промежуточных величин на любом шаге однозначно определяется системой величин, имевшихся на предыдущем шаге;
3) элементарность шагов - закон получения последующей системы величин из предыдущей должен быть простым и локальным;
4) направленность - если способ получения последующих величин из каких-либо исходных не приводит к результату, то должно быть указано, что следует считать результатом алгоритма;
5) массовость - начальная система величин может выбираться из
некоторого множества (т.е. один алгоритм может применяться для
решения класса задач).
Формализация представления алгоритмов
Поскольку любой алгоритм является набором входных, промежуточных и выходных данных, то для его описания и системы правил преобразования служит определенный язык. Естественные языки являются изменчивыми, неоднозначными и избыточными и не подходят для записи алгоритмов, требующих однозначной определенности. Наиболее простой путь устранения этих недостатков - построение искусственных языков со строгим синтаксисом и полной смысловой определенностью. Такие языки получили название формальных.
В любом языке можно выделить две составляющих - синтаксис и семантику.
Синтаксис (грамматика языка) - совокупность правил, согласно которым в данном языке строятся конструкции.
Семантика - смысловая сторона языка, соотносит единицы и конструкции языка с некоторым внешним миром, для описания которого язык используется.
Синтаксис формального языка задается некоторой системой правил, которая из небольшого набора исходных конструкций порождает все допустимые их комбинации, т.е. язык образуется как множество разрешенных правилами сочетаний исходных конструкций. Кроме того, синтаксис содержит формулировку условия, которое выполняется для законченных конструкций языка и не выполняется в противном случае. Наиболее наглядным способом описания формального языка является синтаксическая диаграмма.
Синтаксическая диаграмма - схема (графическое представление) описания какого-либо нетерминального символа языка-объекта. Схема всегда имеет один вход и один выход, а её элементы соединяются между собой направленными линиями, указывающими порядок следования объектов в определенном нетерминальном символе.
В представлении алгоритмов можно выделить две основные формы: символьную (словесную) и графическую.
Строчная форма записи является основным способом представления алгоритмов последовательностью строк, каждая из которых содержит описание одного или нескольких элементарных действий. Логика алгоритма (порядок действий) задается в явном виде путём указания метки последующей строки (в виде порядковых чисел или букв), или в неявном - по умолчанию передается строке, следующей за выполненной. Данный способ позволяет записать алгоритмическую нотацию для любого исполнителя - как человека, так и технического устройства. Недостатком строчной формы является неудобство целостного восприятия его логической структуры.
Формами строчной записи алгоритмов являются:
1) пошагово-словесная форма - пронумерованная последовательность строк, содержащих описания конкретных действий на естественном языке;
2) формула - строчная запись действий, обеспечивающих обработку числовых, символьных или логических данных;
3) псевдокод - ориентированный на исполнителя «человек» частично формализованный язык, позволяющий записывать алгоритмы в форме, близкой к англоподобным языкам программирования;
4) язык программирования - искусственный формализованный язык, предназначенный для записи алгоритма для исполнителя «компьютер», метаязыком которого является естественный язык.
Графическая форма записи или блок-схема для представления отдельных блоков алгоритма использует набор геометрических фигур согласно требованиям ГОСТ 19.701–90 «Схемы алгоритмов, программ, данных и систем, условные обозначения и правила выполнения Единой системы программной документации». Достоинство данной формы записи заключается в наглядности: блок-схема позволяет охватить весь алгоритм сразу, отследить различные варианты его исполнения, позволяет сделать записи, как на естественном, так и на формальном языках.
Процедурное, объектно-ориентированное и логическое программирование
Поскольку ассемблер - машинно-зависимый язык, то записанная на нем программа может выполняться только на той технике (тем типом процессора), ассемблер которого был использован. Этот недостаток отсутствует у языков высокого уровня, которые ориентированы не на систему команд той или иной машины, а на систему операторов, характерных для записи определенного класса алгоритмов (операторы присваивания, условные операторы, циклы, операторы ввода-вывода).
Таблица 1.3 Различия концепций программирования
Концепция программирования | Представление программ и данных | Исполнение программы | Связь частей программы между собой |
Процедурное | Программа и данные представляют собой не связанные друг с другом элементы | Последовательное выполнение операторов | Возможна только через совместно обрабатываемые данные |
Объектно-ориентированное | Данные и методы их обработки инкапсулированы в рамках единого объекта | Последовательность событий и реакций объектов на эти события | Отдельные части программы могут наследовать методы и элементы данных друг у друга |
Логическое | Данные и правила их обработки объединены в рамках единого логического и структурного образования | Преобразование логического образования в соответствии с логическими правилами | Разбиение программы на отдельные независимые части затруднительно |
Контрольные вопросы:
1. Что включает в себя базовое программное обеспечение?
2. Какие программные средства относятся к прикладному прог-
раммному обеспечению?
3. Назовите классификационные признаки операционных систем.
4. Назовите наиболее известные операционные системы, применяемые на персональных компьютерах.
5. Что такое файловая система, для чего она предназначена?
6. Что такое файл?
7. Что такое имя, расширение и спецификация файла? Приведите примеры записи спецификации файла.
8. Назовите наиболее распространенные расширения имен файлов. Что они означают?
9. Поясните, что такое маска. Приведите примеры использования масок.
10. Что такое атрибут файла, какие атрибуты имеет файл?
11. Что такое каталог? Какая информация в нем содержится?
12. Что такое спецификация файла? Приведите примеры.
2 ОСНОВНЫЕ ПРОГРАММНЫЕ СРЕДСТВА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Дата добавления: 2015-04-03; просмотров: 4698;