Язык программирования – это совокупность набора символов (алфавита) системы, правил пользования (синтаксис) и истолкования конструкций из символов (семантика) для задания алгоритмов с использованием символов естественного языка.
Классификация языков программирования
По уровню:
1.Языки низкого уровня:
1) Машинный язык – совокупность команд, интерпретируемых и исполняемых компьютером; каждый оператор программы является машинной командой, а все данные отыскиваются по абсолютным значениям адресов, по которым они располагаются в ОЗУ;
2) Язык ассемблера – язык символического кодирования – операторами языка являются машинные команды, которым приписываются мнемонические обозначения, а в качестве операндов используются не конкретные адреса в ОЗУ, а их символические имена.
2. Языки высокого уровня – ориентированы на систему операторов, характерных для записи определенного класса алгоритмов PASCAL, BASIC, C и др.
3. Язык сверхвысокого уровня SETL.
По функциональному назначению:
1. Проблемно-ориентированные. Примеры: FORTRAN (FORmula TRANslator) – научные и инженерные задачи; COBOL (Common Business Oriented Language) – экономические и коммерческие задачи и др.
2. Универсальные. PASCAL (Philips Automatic Sequence CALculator), BASIC (Beginner ALL-purpose Symbolic Instruction Code), C, Java и др.
По типам решаемых задач:
1. Задачи вычислительного характера – Algol, Fortran, COBOL, BASIC, PASCAL, Ada, Фокал, PL/1 и др.;
2. Разработка программ-оболочек, систем, интерфейса – Ассемблер, С, С++, Java, Smalltalk, Forth и др.;
3. Оформление документов, обработка больших текстовых файлов, разработка баз данных – HTML, Perl, DDL, DSDL, SQL, QBE и др.
4. Задачи искусственного интеллекта – Lisp, Prolog, Рефал и др.;
По парадигме программирования:
Парадигма программирования – совокупность основополагающих идей и подходов, определяющих модель представления данных и их обработки, а также методологии программирования.
Идею структурного программирования впервые сформулировал в 1965 г. Э.Дейкстрой. Алгоритм определяет порядок обработки информации, он должен содержать действия по обработке и порядок их следования – поток управления. Действия могут быть простые и условные. Простые действия имеют один вход и один выход, могут представлять собой последовательность команд. Условные имеют один вход и два выхода, в зависимости от выполнения условия.
Часть алгоритма, организованная как простое действие называется функциональным блоком.
Согласно положениям структурного программирования можно выделить три различных варианта организации потока управления действиями алгоритма: линейный, ветвление и циклический.
Алгоритм называется структурным, если он может быть представлен стандартным функциональным блоком.
Принципы структурного программирования:
1. Проектирование программы сверху вниз – это процесс прохождения от определения задачи в общих чертах к постепенному уточнению ее структуры и деталей.
2. Модульное программирование – это последовательное создание отдельных логических частей программы.
3. Структурное кодирование – это программирование на основе использования трех логических структур: присваивание; выбор одного действия из двух; повторение, пока выполняется условие.
Основой метода структурного программирования является использование принципа модульности построение сложных программ. Каждый программный модуль организуется в виде стандартного функционального блока. Модули обладают автономностью – возможна отладка и модификация каждого модуля в отдельности от других.
FORTRAN. Применяется при разработке прикладных систем, ориентированных на научные исследования, автоматизацию проектирования. Один из самых старых языков.
PASCAL. Классический язык программирования, первоначально был создан как учебный язык, в последствии стал профессиональным.
Си. Ориентирован на разработку системных программ, позволяет программисту точнее учитывать аппаратные особенности компьютерной системы.
Объектно-ориентированные языки. Visual Basic, Delphi, C++ позволяют проектировать приложения с использованием объектно-ориентированного программирования и визуального подхода. Общим для них является простота и наглядность процесса создания программ, основанных на использовании технологии визуального программирования.
Инкапсуляция – это объединение в элементе языка программирования, называемом объектом, данных и операций над ними, при этом скрывается внутренняя структура данных и реализация методов объекта от остальной программы, доступным остается интерфейс объекта, через который осуществляется взаимодействие с ним. (Например, объект окно, имеет данные размер, место положение на экране, действия: активное окно, распахнуть, свернуть, изменить размер).
Наследование – свойство объекта в объектно-ориентированных языках программирования, при котором характеристики одного объекта могут передаваться другому без их повторного описания. Объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него.
Полиморфизм – центральное понятие в объектно-ориентированном программировании, обозначающее способность объекта выбирать правильный метод (внутреннюю процедуру объекта) в зависимости от типа данных, полученных в сообщении. Благодаря полиморфизму объект выполняет нужные действия, даже если содержимое сообщения было неизвестно во время написания программы.
Java (Джава, Ява). Язык создан компанией Sun в начале 90-х годов на основе С++. Он призван упростить разработку приложений на основе С++ путем исключения из него всех низкоуровневых возможностей. Главная особенность – компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-машины (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Основной недостаток языка – невысокое быстродействие, так как язык Ява интерпретируемый.