язык программирования является средством для написания компьютерных программ, имеющим алфавит, правила синтаксиса и семантики.Язык программирования — набор ключевых слов (словарь) и система правил (грамматических и синтаксических) для конструирования операторов для написания программы для ЭВМ.
Существуют различные классификации языков программирования. По зависимости от структуры компьютера выделяют языки:
· Низкого уровня - в группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).
· высокого уровня – команды записывают на понятном человеку языке. Эту более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов, и требуют использования программ-переводчиков (трансляторов) для представления программы на языке машины. Программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.
Языки программирования можно классифицировать по логике решения задачи:
- процедурные языки - программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал. Можно выделить объектно–ориентированные языки высокого уровня (Си++, Visual Basic, Java и др.). На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно–ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.
- непроцедурные (декларативные) – программа не описывает последовательность действий для решения задачи. Эти языки появились в начале 70-х годов 20 века. К непроцедурным относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь делятся на еще более простые задачи и т.д. Один из основных элементов функциональных языков – рекурсия. Оператора присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Программа на Прологе содержит, набор предикатов–утверждений, которые образуют проблемно–ориентированную базу данных и правила, имеющие вид условий.
Одним из признаков классификации языков программирования может быть тип решаемой задачи:
· Задачи вычислительной математики и физики - Occam, PFOR, Glypnir, Actus,параллельный Cobol, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, PA(1), PA(G).
· Разработка программ-оболочек, разработка систем – Forth, C++, Ассемблер, Макроассемблер, Simula-67, OAK, Smalltalk, Java.
· Задачи вычислительного характера - Algol, Fortran, Cobol, Ada, PL/1, Фокал, Basic, Pascal.
· Оформление документов, обработка больших текстовых файлов, организация виртуальных трехмерных интерфейсов в Интернете, разработка баз данных - HTML, Perl, Java, VRML, SQL, PL/SCL, DDL, DSDL, SEQUEL.
В последнее время, говоря о программировании в Internet, часто имеют в виду создание публикаций с использованием языка разметки гипертекстовых документов HTML. Применение специальных средств (HTML–редакторов) позволяет не только создавать отдельные динамически изменяющиеся интерактивные HTML–документы, используя при этом данные мультимедиа, но и редактировать целые сайты.Ява – язык для программирования Internet, позволяющий создавать безопасные, переносимые, надежные, объектно–ориентированные интерактивные программы.
Исходный текст программы, записанный с помощью языка программирования, не может выполниться компьютером, т.к. не является последовательностью машинных команд. Этот текст необходимо перевести на язык команд процессора, транслировать. Этим и занимаются специальные программы-трансляторы: компиляторы и интерпретаторы. Трансляторы осуществляют перевод текста программы с языка программирования на язык машинных команд. Разница между ними в следующем: компиляторы сначала переводят программу на язык машинных команд, а потом выполняют целиком, а интерпретаторы обрабатывают и выполняют программу пооператорно, шаг за шагом.
Среда программирования – это набор инструментов, которые используются для преобразования символов в выполнимые вычисления.
Компоненты среды программирования:
– редактор– это средство для создания и изменения исходных файлов, которые содержат написанную на языке программирования программу
– компилятор – транслирует символы из исходного файла в объектный модуль, который содержит команды в машинном коде для конкретного компьютера
– компоновщик или редактор связей – собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл
– загрузчик – копирует исполняемый файл с диска в память и инициализирует компьютер перед выполнением программы
– отладчик – это средство, которое дает возможность программисту управлять выполнением программы на уровне отдельных операторов для диагностики ошибок
– средства тестирования – автоматизирует процесс тестирования программ, создавая и выполняя тесты и анализируя результаты тестирования
– интерпретатор – транслирует символы из исходного файла, выполняя исходный код программы построчно, в отличие от компилятора, переводящего исходный файл в объектный.
Эволюция технических средств персональных компьютеров привела к повсеместному вытеснению ОС MS-DOS значительно более мощными системами Windows, программирование для которых существенно сложнее, чем программирование для MS-DOS. Разработчики начали выпуск систем программирования, включающих все выше перечисленные компоненты. В 1991 году фирма Borland выпускает Turbo Pascal for Windows, а в 1992 – усовершенствованную версию этой системы программирования – Borland Pascal with Objects 7.0. Эти первые специализированные инструменты требовали основательного знания Windows и были сложны в освоении. В 1993 году Microsoft выпустила первую визуальную среду программированияVisual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В 1995 году Borland выпустила первую версию системы программирования Delphi, которая продолжила серию Паскаль-ориентированных средств программирования и является наиболее удобным инструментом для Windows-программирования. Более 100 компонентов версии 6 обеспечивают полноценную возможность Web-программирования, т. е. создания работающих под управлением Web-сервера программ, обеспечивающих интерактивное взаимодействие с клиентом и публикацию по его требованию необходимых данных.
Таким образом, в современных системах программирования имеются все необходимые средства для создания, редактирования, отладки и исполнения программы инструменты.