Главная страница

ИНФОРМАЦИОННЫЕ И КОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ

Основные разделы:

Наши партнеры:

Магазин подарков ПатиМаркет: подарки на день святого валентина. Подарки в Патимаркете.
Нужно hyundai elantra ? Покупайте hyundai elantra у дилера. A
экономная пластика верхних век
Жесткий микронаушник по низким ценам Киев
Ищете кредит? Обратитесь в Балтийский Банк (Екатеринбург) - получите полную информацию
английский язык в компании
Производим минитрактор. Раздел на сайте о минитракторах и косилках. Что думаешь о минитракторах?
Продаем надежные шины для Пежо 307 недалеко от метро ВДНХ.

Развитие вычислительной техники сопровождается созданием новых и усовершенствованием существующих языков программирования -средств общения программистов с ЭВМ. Под языком программирования понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде язык программирования является средством создания программных моделей объектов и явлений внешнего мира.
На сегодняшний день уже созданы десятки разных языков программирования (как примитивных, так и близких к языку человека). Чтобы разобраться в разнообразии языков программирования, нужно знать их классификацию, а также историю создания, эволюцию и тенденции развития. Эта статья и посвящена рассмотрению указанных вопросов.
Чтобы понимать тенденции развития языков программирования, нужно знать движущие силы их эволюции. Для выяснения этого вопроса будем рассматривать языки программирования с разных точек зрения.
Во-первых, язык программирования является инструментом программиста для создания программ. Для создания качественных программ нужны удобные языки программирования. Поэтому одной из движущих сил эволюции языков программирования есть стремления разработчиков к созданию более совершенных программ.
Во-вторых, процесс разработки программы можно сравнивать с промышленным производством, в котором определяющими факторами является производительность работы коллектива программистов, себестоимость и качество программной продукции. Создаются разнообразные технологии разработки программ (структурное, модульное, обьектно-ориентированное программирование и др.), которые должны поддерживаться языком программирования. Поэтому второй движущей силой эволюции языков программирования является стремления к повышению эффективности процесса производства программной продукции.
В-третьих, программы можно рассматривать как аналог электронных приборов обработки информации, в которых вместо радиодеталей и микросхем используют конструкции языков программирования (элементная база программы). Как и электронные приборы, программы могут быть простейшими (уровня детекторного приемщика) и очень сложными (уровня автоматической космической станции), при этом уровень инструмента должен отвечать сложности изделия. Кроме того, человеку удобнее описывать объект, который моделируется, используя сроки предметной области, а не языком цифр. Поэтому третьей движущей силой, которая ведет к созданию новых, специализированных, ориентированных на проблемную область, мощных языков программирования, есть увеличение разнообразия и повышение сложности задач, которые решаются с помощью ЭВМ.
В-четвертых, усовершенствование самих ЭВМ приводит к необходимости создания языков, которые максимально реализуют новые возможности ЭВМ.
В-пятых, программы являются интеллектуальным продуктом, который нужно накапливать и приумножать. Но программы, как и технические изделия, имеют свойство морального старения, одной из причин которого есть их зависимость от типа ЭВМ и операционной среды. С моральным старением программ борются путем их модернизации и выпуска новых версий, тем не менее в условиях частого изменения типов ЭВМ и операционных сред разработчики будут только тем и заниматься, что модернизировать старые программы. Язык программирования должен обеспечивать продолжительный жизненный цикл программы. Стремление к этому есть пятой движущей силой развития языков программирования.
Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но разрешали выполнять программы на машинном языке. Машинный язык -единственный язык, который понимает ЭВМ. Он реализуется аппаратно: каждую команду выполняет определенное электронное устройство. Программа на машинном языке представляет собой последовательность команд и данных, заданных в цифровом виде. Например, команда вида 1А12 или 0001101000010010 означает операцию добавления (1А) содержимого регистров 1 и 2. Машинным языком данные представляются числами и символами. Операции являются элементарными и из них строится вся программа. Введение программы в цифровом виде выполнялось непосредственно в память с пульта ЭВМ или из примитивных устройств ввода. Естественно, что процесс программирования был очень трудоемким, разобраться в программе даже автору было довольно сложно, а эффект от применения ЭВМ был незначительным. Этот этап в развитии МП показал, что программирование является сложной проблемой, которая тяжело подвергается автоматизации, а именно программное обеспечение определяет эффективность применения ЭВМ. Поэтому на всех следующих этапах усилия направлялись на усовершенствование интерфейса между программистом и языком программирования.
Стремление программистов оперировать не цифрами, а символами, привело к созданию мнемонического языка программирования, которые называют ассемблером, мнемокодом, автокодом. Этот язык имеет определенный синтаксис записи программ, в котором в частности цифровой код операции заменен мнемоническим кодом. Поэтому нужно было еще создать специальную программу-транслятор, который превращает программу на языке ассемблера в машинные коды. Эта проблема требовала, в свою очередь, глубоких научных исследований и разработки разнообразных теорий, например, теории формальных языков, которые легли в основу создания трансляторов. Практически любой класс ЭВМ имеет свой язык ассемблера. Теперь язык ассемблера используется для создания системных программ, которые используют специфические аппаратные возможности этого класса ЭВМ.
Следующий этап характеризуется созданием языков высокого уровня. Эти языки являются универсальными (дают возможность создавать любые прикладные программы) и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии программирования. Этими языками создается множество разнообразных прикладных программ. Принципиальными отличиями языков высокого уровня от языков низкого уровня является:
  1. использование переменных;
  2. возможность записи сложных выражений;
  3. возможность расширения набора типов данных за счет конструирования новых типов с базовых;
  4. возможность расширения набора операций за счет подключения библиотек подпрограмм;
  5. низкая зависимость от типа ЭВМ.
С усложнением языков программирования модернизируются и трансляторы для них. Теперь в набор инструментов программиста, кроме транслятора, входит текстовый редактор для введения текста программ, наладчик для устранения ошибок и много других служебных программ. Все это вместе называется системой программирования. Наиболее яркими представителями языков высокого уровня являются FORTRAN, PL/1, Pascal, C, Basic, Ada. Может возникнуть вопрос: Зачем создано столько разнообразных языков одного класса? Почему нельзя создать один язык, который отвечал бы всем требованиям? Ответ может быть такой, как и на вопрос о разнообразных языках народов мира: так вышло.
Каждый из разработчиков языков высокого уровня стремился создать наилучший и наиболее универсальный язык, который давал бы возможность быстро получать наиболее эффективные, надежные и безошибочные программы. Однако в процессе этого поиска выяснилось, что результат зависит не от самого языка, а от технологии его использования. Поэтому дальнейшее развитие языков стало определяться новыми технологиями программирования. Вместе с тем с развитием универсальных языков программирования высокого уровня стали развиваться проблемно-ориентированные языки программирования, которые решали экономические задачи (COBOL), задачи реального времени ( Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Аналитик) и др. Эти специализированные языки давали возможность адекватнее описывать объекты и явления реального мира, приближая языка программирования к языку специалиста в проблемной области.
Другим направлением развития языков программирования является создание языков сверхвысокого уровня. Языком высокого уровня программист задает процедуру (алгоритм) получения результата на основе известных исходных данных, поэтому они называются процедурными языками программирования. На языке сверхвысокого уровня программист задает отношение между объектами в программе, например, систему линейных уравнений, и определяет, что нужно найти, но не указывает как получить результат. Такие языки называют также непроцедурными, поскольку самая процедура поиска решения встроена в язык (в его интерпретатор). Они используются, например, для решения задач искусственного интеллекта (Lisp, Prolog) и дают возможность моделировать умственную деятельность человека в процессе поиска решений. К непроцедурным языкам можно отнести и языки запросов систем управления базами данных (QBE, SQL).
В последнее время широкое распространения приобрела технология обьектно-ориентированного программирования (ООП): практически все современные языки высокого уровня поддерживают ООП. И все современные программные системы построены на ее принципах. Сегодня каждый студент, который программирует, знает, что такое инкапсуляция (сокрытие деталей реализации объекта), наследование (построение новых объектов с существующих) и полиморфизм (обозначение одним именем разных элементов программы, которые избираются динамично). Для обозначения факта поддержки ООП к названию языка прибавляют слово Object (например, ObjectPascal) или другие (например, C++). Для поддержки Windows создаются системы визуального программирования с дополнительным названием Visual, например, Visual C++, Visual Basic (принципиально отличается от простого Basic) и др.
Изучение вопросов эволюции языков программирования направлено на облегчение выбора языка для решения определенных задач. Тем не менее нужно сознавать, что не нужно изучать все существующие языки программирования. Достаточно выучить по одному языку каждого класса по мере потребности, ведь в процессе эволюции языки одного класса сближаются. И помнить главное: наилучшим является тот язык, который знаешь в совершенстве.
 
Copyright © Eugene, 2007-2008
e-mail: webmaster@infoit.net.ru
Rambler's Top100 Рейтинг@Mail.ru
dating sites blackplanet
статистика посещений