Научная статья на тему 'КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ ОСОБЕННОСТИ'

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ ОСОБЕННОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
609
98
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫКИ ПРОГРАММИРОВАНИЯ / КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ / ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Басов А.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ ОСОБЕННОСТИ»

УДК 004.43

Басов А.С.

студент 2 курса магистратуры кафедры информатики и вычислительной техники Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева (Россия, г. Красноярск)

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

И ИХ ОСОБЕННОСТИ

Аннотация: в статье рассматриваются вопросы появления различных языков программирования, составления основных видов и классификаций языков программирования.

Ключевые слова: языки программирования, классификация языков программирования, информационные технологии.

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

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

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

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

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

• язык PL/1 (NPL) был разработан в 1960-х годах как комбинация лучших особенностей Fortran и Kobol;

• язык Simula, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования;

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

• между 1969 и 1973 годами был разработан язык Си, который до сих пор популярен и стал основой для многих последующих языков, таких как C++ и Java;

• в 1972 году был создан prologue-самый известный (хотя и не первый, и далеко не единственный) язык логического программирования;

• в 1973 году язык мл реализована расширенная система полиморфной

типизации, что породило типизированных функциональных языков

программирования.

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

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

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

Машинно-ориентированные языки — это языки, наборы высказываний и визуальные устройства, которые существенно зависят от характеристик компьютера.

К языкам программирования высокого уровня относятся Fortran (formula translator-был разработан в середине 50 — х годов программистами IBM и в основном используется для программ, выполняющих естественнонаучные и математические вычисления), ALGOL, COBOL (commercial language — использовался в основном для программирования экономических задач), Pascal, basic (был разработан профессорами Дармутского колледжа Джоном Кемени и

Томасом Курцем), C (Dennis Ritch-1972), prologue (язык основан на математической машинной логике) и др.

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

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

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

• языки первого поколения: машинно-ориентированные с ручным управлением памятью на компьютерах первого поколения;

• языки второго поколения: с мнемоническим представлением команд, так называемые автокоды;

• языки третьего поколения: языки общего назначения, используемые для создания прикладных программ любого типа. Например, basic, COBOL, C и Pascal;

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

• языки программирования пятого поколения: декларативные, объектно-ориентированные и визуальные. Например, Prologue, LISP (используется

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

интеллекта), C++, Visual Basic и Delphi.

Языки программирования также можно разделить на процедурные и непроцессуальные. В процедурных языках программа явно описывает выполняемые действия, а результат определяется только тем, как он получен с помощью определенной процедуры, представляющей собой определенную последовательность действий. Среди процедурных языков существуют структурные и операционные языки. В структурных языках один оператор записывает целые алгоритмические структуры: ветви, циклы и т. д. on.in для этой цели используются операционные языки, несколько операций. Широко используются следующие структурные языки: Pascal, C, Ada, PL/1. Операционные системы включают Fortran, basic и Focal.

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

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

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

Язык Java прочно связан с интернетом, потому что первой серьезной программой, написанной на этом языке, был браузер world wide web.

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

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

• назначение разрабатываемого программного обеспечения, т.е.

необходимость в нем будет временная или оно будет использоваться

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

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

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

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

• основные типы данных, которыми придется оперировать, возможность поддержки работы с различными типами структур;

• характер и уровень использования периферийных средств (монитора, клавиатуры и др.), необходимость в специальном программировании некоторых функций, чтобы работать с периферийными устройствами;

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

СПИСОК ЛИТЕРАТУРЫ:

Бьянкуцци Ф., Уорден Ш. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. Электронный журнал: наука, техника и образование. 2015. № 3 (3). С. 25 - 34.

Вольфенгаген В.Э. Конструкции языков программирования. Приемы описания. // Научный вестник ГосНИИ ГА. 2017. № 16. С. 98-107.

Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов — это очень просто! // Электронный журнал: наука, техника и образование. 2019. № 3 (3). С. 8 - 12.

i Надоели баннеры? Вы всегда можете отключить рекламу.