Языки программирования. Общая характеристика

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

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

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

Следует также отметить и развитие языков программирования в сторону спецификации, когда определенные языки наиболее пригодны для решения узкого класса задач.

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

Если проследить эволюционный путь развития языков программирования, то можно заметить аналогию с развитием живого мира. Когда сначала существовали лишь простые организмы (и языки программирования), а потом появились более сложные. Причем и там и там можно отметить следующие:

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

В живом мире выделилось лишь одно животное, которое научилось быть достаточно независимым от условий окружающей среды – это человек. Поэтому логичен вопрос: «Появится ли язык программирования, который сможет оптимально решить любую задачу, причем на несколько ином уровне, чем существующие на сегодняшний день языки?». Возможно, ответ на этом вопрос лежит в рамках изучения ИИ и так называемых CASE-систем.