Какое бывает программирование. Языки программирования. Понятие, классификация, виды. Олимпиадное программирование и решение задач

Быстрая навигация:
1.31 Списки - массивы. Первое знакомство. 1.30 Функции которые возвращают результат - return 1.29 Подпрограммы: функции и процедуры в Питоне 1.28 Преобразование типов данных - int() 1.27 Ввод данных с клавиатуры - input() 1.26 Типы и размеры данных 1.25 Цикл с предусловием - while. Числа Фибоначчи 1.24 Измерение длины строки, списки 1.23 Срезы строк - вывод определенного количества символов из имеющегося текста 1.22 Строки и управляющие символы 1.21 Системные ошибки в процессе отладки программы 1.20 Оператор ветвления - if, комментарии 1.19 Вывод на печать - print(), быстрый ввод данных, округление, комментарии 1.18 Типы программирования. Часть 2. Объектно-ориентированное программирование 1.17 Типы программирования. Часть 1. Структурное программирование. Циклы 1.16 Представление символьной информации - ASCII 1.15 Деление двоичных чисел 1.14 Математические операции с двоичными числами 1.13 Как хранится и записывается информация. Биты и байты 1.12 Перевод целых чисел десятичной системы счисления в другую систему 1.11 Перевод целых чисел из шестнадцатеричной системы счисления в десятичную 1.10 Перевод целого двоичного числа в шестнадцатеричное 1.9 Перевод целого двоичного числа в другую систему счисления 1.8 Системы счисления 1.7 Булевая алгебра. Логические выражения 1.6 Базовые понятия. Часть 3 - Числа, выражения, операнды, знаки операций 1.5 Базовые понятия. Часть 2 - Программа, данные 1.4 Базовые понятия. Часть 1 - Задача и алгоритм 1.3 Среда разработки СИ 1.2 История языков программирования 1.1 Введение

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

Языки программирования – формальные языки, предназначенные для описания .

Формальные языки характерны тем, что имеют четкие синтаксические правила.
Например запись 2x2=4 является синтаксически правильной математической записью, а 2=+4 – нет.

Когда вы читаете предложение на русском языке или выражение на формальном языке, вы определяете его структуру, часто неосознанно. Этот процесс называется синтаксическим анализом или синтаксическим разбором. Эквивалентный англоязычный термин – parsing (парсинг)

Отсюда мы подходим к тому, что называется парадигмой программирования.

Парадигма программирования - это некий набор правил, который определяет стиль написания программ.

Существует несколько таких правил, которые можно распределить по специфике методологии программирования:
- структурное программирование
- объектно-ориентированное программирование
- логическое программирование и прочие...

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

Вот интересная вводная лекция
по парадигмам программирования
на русском языке:



Перевод осуществлён Kovalev Filipp

Это обзорная лекция профессора Джери Кейн с факультета Computer Sciense университета Стэнфорд.
Парадигмы программирования представляют несколько языков, включая C, Ассемблер, C++, Параллельное программирование, Sheme и Python.
Цели данного курса - научить слушателей как писать код на каждом из этих языков и понимать парадигмы программирования, представляемые этими языками.

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

    процедурный,

    функциональный,

    логический,

    объектно-ориентированный.

3.1. Процедурный (алгоритмический) язык

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

Процедурные языки характеризуются следующими особенностями:

    необходимостью явного управления памятью, в частности, описанием переменных;

    малой пригодностью для символьных вычислений;

    отсутствием строгой математической основы;

    высокой эффективностью реализации па традиционных ЭВМ.

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

К процедурным языкам относятся: язык Ассемблера, С, Basic, Pascal.

3.2 Функциональный (аппликативный) язык

Первым таким языком был LISP.

Роль основной конструкции в функциональных (аппликативных) языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций.

Аппликативный язык программирования включает следующие элементы:

    классы констант, которыми могут манипулировать функции;

    набор базовых функций, которые программист может использовать без предварительного объявления и описания;

    правила построения новых функций из базовых;

    правила формирования выражений на основе вызовов функций.

Перечисленные свойства характеризуют аппликативные языки как языки программирования очень высокого уровня.

3.3 Логический (реляционный) язык

Язык PROLOG был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Языки логического программирования широко используются в системах искусственного интеллекта.

Языки логического программирования характеризуются:

    высоким уровнем;

    строгой ориентацией на символьные вычисления;

    возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

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

Конструкции языка соответствуют не математическим формулам, а определяют отношения между объектами и величинами, они констатируют, какой результат желателен пользователю, не указывая, каким образом это сделать.

Логические и функциональные языки – это декларативные языки . В этих языках отсутствует понятие «оператор» («команда»).

3.4 Объектно-ориентированный язык

Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования.

Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.

В современных объектно-ориентированных (ОО) языках используются следующие методы:наследование,инкапсуляция,полиморфизм.

В некоторых объектно-ориентированных языках все методы классов являются виртуальными.

Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.

Часть языков (иногда называемых «чисто объектными» - Java или Ruby) целиком построена вокруг объектных средств - в них любые данные являются объектами, любой код - методом какого-либо класса и невозможно написать программу, в которой не использовались бы объекты. Другие языки («гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры - C++ и Delphi (Object Pascal).

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

Даже при наличии десятков тысяч программ для PC пользователям может потребоваться что-то такое, чего не делают (или делают, но не так) имеющиеся программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ. Эти системы обычно включают компилятор, осуществляющий преобразование программ на языке программирования в программу в машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение программы на языке программирования, редактор текстов программ, библиотеки полезных подпрограмм, отладчики, а иногда и различные вспомогательные программы.

Для популярных языков программирования (Си, Си++, Паскаль, Бейсик, Фортран и др.) имеется множество систем программирования, позволяющих создавать программы, работающие в среде DOS, Windows и др. В последнее время стали появляться системы программирования на языке Java, они позволяют создавать программы, вызываемые при просмотре Web-страниц в глобальной электронной сети Internet.

Особым классом систем программирования являются системы для создания приложений типа клиент-сервер. Эти системы позволяют быстро создавать информационные системы для подразделений и даже крупных предприятий. В них содержатся средства для создания пользовательского интерфейса, описания процедур обработки данных, заготовки для выполнения типовых действий по обработке данных и т.д. Эти системы, как правило, позволяют работать с самыми различными СУБД - Oracle, Microsoft SQL Server и др.

Виды языков программирования

Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными. В них синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня :

· Язык высокого уровня - Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1 , Бейсик, Паскаль, Си, Ада и др.



· Язык низкого уровня , - Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (см. ниже также "машинный язык ", " машинно-ориентированный язык " и " язык ассемблера ").

Различают также следующие виды языков программирования:

· Алгоритмический язык - Совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования;

· Неалгоритмический язык - Язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;

· Формальный язык – Язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики , представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;

· Исходный язык - Язык программирования, на котором написана программа, в отличие от машинного языка, на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня.

· Машинный (абсолютный) язык, язык ЭВМ - Язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;

· Машинозависимый (машинно-ориентированный) язык, машинозависимый язык программирования - Язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;

· Машиннонезависимый язык - Язык программирования, структура и средства которого не связаны ни с какой конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами (см. ниже) с этого языка;

· Символический язык, язык символического кодирования - Язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;

· Гибридный (комбинированный) язык - Язык программирования, использующий также средства другого языка;

· Графический язык - Язык, предназначенный для написания программ машинной графики и пользования ими.

· Базовый язык – Машинный язык, общий для семейства ЭВМ (язык программирования в СУБД с автономным языком).

· Общий язык - Машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;

· Эталонный язык - Язык, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;

· Язык ассемблера, ассемблер - Универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.

· Декларативный (непроцедурный) язык - Язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);

· Императивный (процедурный) язык - Язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;

· Язык функционального программирования, функциональный язык - Декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.

· Специализированный язык - Язык программирования, ориентированный на решение определенного круга задач;

· Язык описания страниц - Специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript.

· Автономный язык - Специализированный язык высокого уровня, в замкнутых СУБД (" СУБД с автономным языком ");

· Язык конструирования интерактивных технологий - В СУБД - язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;

· Язык манипулирования данными, ЯМД - В СУБД - язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;

· Язык обработки списков - Специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;

· Язык описания данных - Язык, предназначенный для описания "концептуальной схемы” базы данных;

· Язык описания хранения данных - Язык, предназначенный для описания физической структуры (схемы) базы данных;

· Язык описания страниц - Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц.

· Язык представления знаний - Декларативный или декларативно-процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);

· Язык публикаций - Язык, используемый для публикации алгоритмов и программ;

· Язык спецификаций - Декларативный язык для задания спецификаций программ;

· Проблемно-ориентированный язык - Язык программирования, предназначенный для решения определенного класса задач (проблем);

· Процедурный (процедурно-ориентированный) язык - Проблемно-ориентированный язык, который облегчает выражение процедуры, как точного алгоритма;

· Язык реального времени - Язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);

· Язык управления пакетом - Набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;

· Язык управления заданиями - Язык, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами.

· Общесетевой командный язык - Стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;

· Системный язык - Язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;

· Язык общего назначения, универсальный язык - Язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера, ПЛ/1 и др.);

· Язык ориентированный на пользователя - Слабоформализованный язык программирования, близкий к естественному языку;

· Язык меню - Язык диалога пользователя с системой, основанный на использовании меню.

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

Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 4.1).

Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.

Процедурные языки разделяют на языки низкого и высокого уровня.

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

Рис. 4.1. Общая классификация языков программирования

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

Языком низкого уровня (машинно-ориентированным) является Ассемблер , который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью условных символьных обозначений, называемых
мнемониками.

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

Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при создании программ допускается гораздо меньше.

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

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. В связи с этим можно отметить два недостатка метода интерпретации: во-первых, интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т. е. занимать определенный объем памяти; во-вторых, процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.

Несмотря на указанные недостатки, трансляторы-интерпретаторы получили достаточное распространение, так как они удобны при разработке и отладке исходных программ.

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

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

Полученная в результате трансляции методом компиляции программа называется объектным модулем , который представляет собой эквивалентную программу в машинных кодах, но не «привязанную» к конкретным адресам оперативной памяти. Поэтому перед исполнением объектный модуль должен быть обработан специальной программой операционной системы (редактором связей – Link) и преобразован в загрузочный модуль .

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

Классическое процедурное программирование требует от программиста детального описания того, как решать задачу, т. е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп – оператор и данные.
При процедурном подходе операторы объединяются в группы – процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы
технологии программирования.

Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.

При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства – логические (типичный представитель – Пролог) и функциональные (Лисп).

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

1.Фортран (FORmula TRANslating system – система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач

2.Бейсик (Beginner"s All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий – самый популярный по числу пользователей. Широко употребляется при написании простых программ.

3.Алгол (ALGOrithmic Language – алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

4.ПЛ/1 (PL/1 Programming Language – язык программирования первый); многоцелевой язык; сейчас почти не используется.

5.Паскаль (Pascal – назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).

6.Кобол (COmmon Business Oriented Language – язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления
и бизнеса.

7.АДА ;является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка
Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

8.Си (С – «си»); широко используется при создании системного программного обеспечения. Наложил большой отпечаток на современное программирование (первая версия – 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

9.Си++ (С++);объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость.

10.Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмы Borland язык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

11.Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компанией Sun в начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

12.Лисп (Lisp) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

13.Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка – разработка интеллектуальных программ и систем. Пролог – это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода.
Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.

Языки программирования для Интернета:

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

2. PERL. Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами.
По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, управление процессорами, работа с системной информацией.

3. Tcl/Tk. Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.

4. VRML. Создан для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры.

Выбор языка программирования зависит от многих факторов: назначения, удобства написания исходных программ, эффективности получаемых объектных программ и т. п. Разнотипность решаемых компьютером задач и определяет многообразие языков программирования.

Контрольные вопросы

1. Что такое системы программирования и к какому классу программ они относятся?

2. Что входит в состав систем программирования?

3. На каком языке программирования создавались первые программы?

4. На какие языки подразделяются процедурные языки?

5. Охарактеризуйте языки низкого уровня.

6. Какой язык относится к языку низкого уровня?

7. Достоинства языков низкого уровня.

8. Охарактеризуйте языки высокого уровня.

9. Достоинства языков высокого уровня.

10. Приведите примеры языков высокого уровня.

11. Для чего предназначены трансляторы?

12. Чем отличается компилятор от интерпретатора?

13. Недостатки интерпретации (как вид транслятора).

14. Что представляет собой процесс компиляции программы?

15. Какие действия выполняются при компиляции?

16. Чем отличается загрузочный модуль от объектного?

17. Чем отличается процедурное программирование от непроцедурного?

18. Какие виды программирования относятся к непроцедурному
программированию?

19. Особенность декларативных языков.

20. Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Паскаль, Кобол.

21. Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi, Java.

22. Приведите примеры объектно-ориентированных языков.

23. К какому классу языков относится язык Лисп?

24. К какому классу языков относится язык Пролог?


Ещё вчера информатику считали в Советском Союзе лженаукой. А сегодня правительства некоторых стран жалуются на атаки российских хакеров.

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

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

Начнем рассматривать тему с теории. Первым делом разберёмся с понятием.

Что такое компьютерные языки?

Это система знаков, символов, которая создана для "общения" человека с компьютером. Ведь мы не можем просто так взять, подойти к компьютеру и начать ему что-то объяснять. Для этого существуют специальные слова-коды и лексика, из которых состоят компьютерные языки. А они уже доносятся до компьютера в понятной ему форме.

На сегодняшний день существует более 8 тысяч различных языков для общения человека с компьютером. Конечно же, все их знать нельзя. Кто-то создаёт язык для себя, а кто-то занимается этим на коммерческой основе.

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

Какие языки программирования самые популярные?

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

Конечно же, языков на самом деле ещё больше, но мы выбрали самые основные, на которых написано более 90% всех компьютерных приложений. Далее рассмотрим подробнее каждый из них.

Процедурный С/С++

Языки С и C++ можно назвать двумя братьями. Есть утверждения о том, что это два абсолютно разных языка программирования, что неверно. С++ является некоторым усовершенствованием предыдущего языка, облегчающим написание программ и сохранившим прежний синтаксис.

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

Говоря о достоинствах и недостатках этого языка, нельзя делать однозначные выводы. Есть его сторонники, а есть и беспощадные критики. Основой для споров является то, что в этом языке программирования нет ничего своего.

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

Независимый и безопасный Java

Этот английский компьютерный язык разработали в компании Sun Microsystems. Благодаря тому, что написанная программа транслируется в особенный байт-код, она способна работать независимо от типа операционной системы или компьютерной архитектуры.

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

Также у этого языка программирования достаточно высокий уровень безопасности. Выполнение программой действий в рамках своих полномочий контролируется которая передаёт команды на устройства. Поэтому при попытке выполнить какую-либо другую задачу работа программы тут же прекращается.

Если говорить о простоте языка, то стоит отметить исследования, которые показали, что аналогичные операции пишутся в 1,2-2 раза дольше, чем на языке C++. Также в несколько раз больше ресурсов требуется на выполнение команд. Но команда производителя постоянно выпускает множество обновлений, которые сводят к минимуму все недостатки этого языка программирования.

Покоривший Интернет PHP

Вы хотите создать свой сайт или заняться веб-программированием? В этом вам поможет отличный язык PHP, который способен создавать динамические страницы. Он является, пожалуй, самым популярным при создании сайтов и написании веб-приложений.

Благодаря тому, что этот язык программирования создавался разработчиками с открытым кодом, его удалось довести до совершенства, и он набрал бешеную популярность. PHP легко взаимодействует с самыми разными базами данных - от MySQL до Access.

Самые популярные сайты Интернета, такие как Facebook или Wikipedia, написаны именно на этом языке.

Писать на нём достаточно просто. Существует даже статистика, что более 60% программистов мира, которые работают на коде PHP, достаточно ограниченно знают (на базовом уровне) английский язык. Компьютерная грамотность в этом случае ограничивается лишь знанием необходимых функций и процедур.

Нельзя обойти стороной и критику языка. Несмотря на то что в рейтингах самых популярных языков 2015 года PHP занял 6-е место, в его адрес нередко высказывается недовольство.

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

Также одной из главных проблем можно назвать отсутствие совместимости между разными версиями языков. Более ранние версии абсолютно отказываются работать с обновлениями, что часто создаёт проблемы по переносу кода из одной версии в другую.

Актуальность знания и понимания языков программирования

Тема умения "разговаривать" с компьютером в последнее десятилетие набирает все больше оборотов.

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

Ещё одной причиной того, почему многие изучают компьютерные языки, можно назвать спад экономики страны. Человек, умеющий профессионально писать на Java, может удалённо работать на иностранную компанию по созданию приложений и зарабатывать за месяц такие деньги, которые в своей стране придётся копить в течение десятков лет.

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

Изучить языки можно онлайн

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

Но не переживайте, мир не стоит на месте. Сегодня можно обучаться, не выходя из дома. Главное - иметь компьютер и Интернет. Есть множество сайтов, которые проводят компьютерное обучение языкам. Самые популярные из них - это Codecademy, Code School и Udacity.

Loading...Loading...