Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования высокого уровня (Языки программирования высокого уровня)

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

  1. Изучить историю развития зыков программирования.
  2. Рассмотреть особенности и произвести классификацию языков программирования высокого уровня.
  3. Дать определение основным понятиям языков программирования.

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

Предмет исследования — изучение классификации языков программирования высокого уровня и их развитие.

Первая глава нашей работы посвящена истории развития языков программирования и сравнительному анализу понятия «языки программирования высокого уровня».

Вторая глава посвящена классификации «языков программирования высокого уровня», описанию их достоинств и недостатков.

В конце курсовой работы дано заключение по проделанной работе и приведен список использованных источников.

В ходе теоретического исследования нами были использованы следующие основные литературные источники: Павловская Т.А. С/С++: Программирование на языке высокого уровня. Учебник, Информатика. Теория и практика: Учеб. пособие / В.А. Острейковский, И.В. Полякова., Белов П.М. Основы алгоритмизации в информационных системах:
Учебн. Пособие., Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с.

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

Глава 1. Языки программирования высокого уровня

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

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

Поэтому сегодня практически все программы создаются с помощью языков программирования.

Теоретически программу можно написать и средствами обычного человеческого (естественного) языка — это называется программированием на метаязыке (подобный подход обычно используется на этапе составления алгоритма), но автоматически перевести такую программу в машинный код пока невозможно из-за высокой неоднозначности естественного языка[1].

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

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

Основные требования, предъявляемые к языкам программирования:

  1. наглядность - использование в языке по возможности уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;
  2. единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;
  3. гибкость - возможность относительно удобного, несложного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;
  4. модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;
  5. однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач[2].

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

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

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

- машинные;

- машинно-ориентированные (ассемблеры);

- машинно-независимые (языки высокого уровня).

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

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

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

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

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

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

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

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

Языки программирования высокого уровня подразделяют на[3]:

  1. процедурно-ориентированные;
  2. проблемно-ориентированные;
  3. объектно-ориентированные.

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

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

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

Таким образом, можно сформулировать основные преимущества языков высокого уровня перед машинными:

  1. алфавит языка высокого уровня значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;
  2. набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
  3. формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать достаточно содержательный этап обработки данных;
  4. требуемые операции задаются с помощью общепринятых математических обозначений;
  5. данным в языках высокого уровня присваиваются индивидуальные имена, выбираемые программистом;
  6. в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.

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

Любой язык программирования образуют три его составляющие: алфавит, синтаксис и семантика.

Алфавит – это фиксированный для данного языка набор основных символов, т. е. «букв», из которых должен состоять любой текст на этом языке – никакие другие символы в тексте не допускаются.

Синтаксис – это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.

Семантика определяет смысловое значение предложений языка[4].

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

Алфавит языка включает:

• буквы латинского алфавита от A до Z (строчные и прописные)

• арабские цифры: 0 1 2 … 9

• знаки арифметических операций: + – * / ^ \

• специальные символы объявления типа: % # ! $ &

• круглые скобки ( ) кавычки “ ” апостроф ’, нижнее подчеркивание _

• знаки отношений: < > = < > < = > =

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

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

История развития языков программирования

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

В 1945 году в Америке построили первый компьютер — ЭНИАК (Electronic Numerical Integrator And Computer). Он состоял из 17 тысяч ламп, весил 27 тонн и стоил 480 000 долларов. Сравните: новый iPhone X за 1000 долларов помещается в кармане и почти в 25 тысяч раз мощнее. В те времена ещё не было языков программирования, и ЭНИАК управлялся через систему команд, записанных в машинном коде — то есть в виде последовательности единиц и нолей. Писать программы на машинном коде было долго и сложно.

История программ начина­ется с далеких 20-х годов XIX века, когда английский исследователь Ч. Бэббидж выдвинул идею о предварительной записи действий вычислительной машины.

До появления вычислительных машин делались попытки управлять ткацкими станками. Программы для станков записывались на перфокарты, которые были придуманы Чарлзом Бэббиджем и французским изобретателем Жозефом Жаккаром. С этих первых программ началась история программирования, несколько позднее стали закладываться теоретические основы этой науки.

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

Как упростить управление компьютером задумались в Кембриджском университете, когда профессор Морис Уилкс начал работу над созданием электронно-вычислительной машины ЭДСАК. Позже именно для неё была разработана первая компьютерная игра — «Крестики-нолики». Но главная заслуга Уилкса, конечно, не в этом. А в том, что в 1949 году он создал программу, которая позволяла писать команды в удобной для человека форме и сама переводила их в машинный код[6].

Программу Уилкс называл собирающей системой или «ассемблером», от английского глагола «assemble» — собирать. Вместо двоичного кода в языке ассемблера использовались буквы, цифры или сокращения, которые отражали суть команды. Например, команда «Mov Ax, 6» на языке ассемблера означала «передвинь в ячейку памяти «Ах» число 6». Согласитесь, запоминать такие команды гораздо проще, чем длинные ряды нолей и единиц.

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

Одним из первых языков программирования высокого уровня является язык Форт­ран (FORTRAN от FORmula TRANslator — переводчик фор­мул), он был создан в 50-е годы. К основным его достоинствам можно отнести наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности, встроенных средств обработки массивов[7]. Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественнонаучных и математичес­ких расчетов. позволял писать программы, не думая об архитектуре конкретного компьютера. Код стал «переносимым» — одна и та же программа теперь запускалась на разных устройствах.

Это стало возможным благодаря специальным программам — компиляторам. Они превращали текст на Фортране в машинный код и сами устанавливали соответствия между ним и системой команд компьютера.

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

Следующим языком, созданным после Фортрана, стал язык Алгол (ALGOL от ALGOrithmic Language — алгоритмический язык). Этот язык так же, как и Фортран, предназначался для решения науч­но-технических задач. Язык Алгол служил средством обучения основам программирования.

Далее, в 1960 году Джоном Маккарти был разработан язык Лисп (LISP от LISt Processing – обработка списков). Этот язык широ­ко используется для обработки символьной информации и при­меняется для создания программного обеспечения, имитирующего деятельность человеческого мозга.

В середине 60-х годов появилась необходимость создать язык в качестве учебного языка, так появился язык Бейсик (Beginners All-Purpose Symbolic Instruction Code, или, сокращенно, BASIC).

Позднее, в 1967 году создается язык PL/I (Programming Language One) По своим возможностям ПЛ/1 оказывается значительно мощнее ранее появившихся языков.

Язык Форт появился в конце 60-х – начале 70-х гг. (FORTH — четвертый). Этот язык стал применяться в задачах управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Аризонской обсерватории.

Появившийся в 1971 году язык Паскаль был назван так в честь великого французского математика XVII века, изобрета­теля первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом в области информатики Никлаусом Виртом.

На основе языка Паскаль в конце 70-х гг. был создан язык Ада, названный в честь одаренного математика Ады Лавлейс.

В настоящее время популярным среди программистов явля­ется язык «С» (Си). Данный язык был создан в лаборатории Bell в 1972 году и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (UNIX).

Еще один язык был со­здан в начале 70-х гг. группой специалистов Марсельского уни­верситета. Это язык Пролог. Свое название он получил от слов «Программирование на языке ЛОГики». В основе этого языка лежат законы математической логики[8].

«C++» (Си++). Си++ В начале 1970-х годов Деннис Ритчи (Dennis Ritchie) вместе с программистом Кеннетом Томпсоном (Kenneth Thompson) разработали язык программирования Си. Представленный в 1973 году, Си широко применяется до сих пор и оказал влияние на многие более современные языки. Ритчи как создатель Си также внес большой вклад в создание операционной системы UNIX.

Язык С++ был разработан Бьерном Страуструпом в начале 80-х годов, как дальнейшее развитие языка Си. Язык С++ обладает рядом свойств, которые делают его более совершенным языком по сравнению с Си, однако наиболее важным является то, что он обеспечивает возможность объектно-ориентированного программирования[9]. На сегодняшний день яляется одним из самых популярных языков.

«Java» (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе C++. Он призван упростить разработку приложений на основе C++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт)[10].

«С#» (Си Шарп). В конце 90-х годов в компании Microsoft под руководством Андерса Хейльсберга был разработан язык C#. В нем воплотились лучшие идеи Си и Си++, а также достоинства.

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

Большинство современных языков программиро­вания — объектно-ориентированные. Среди них последние вер­сии языка Turbo Pascal, C++, Ada и др. В настоящее время ши­роко используются системы визуального программирования Visual Basic, Visual C++, Delphi и др. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом[11].

Интерпретаторы и компиляторы. Для того, чтобы процессор мог выполнить программу, программа и данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП был размещена программа - транслятор, автоматически переводящий с языка программирования в машинные коды. Трансляторы бывают двух типов: интерпретаторы и компиляторы. Интерпретатор – программа, которая обеспечивает последовательный перевод операторов программы с одновременным их выполнением. Достоинством интерпретатора является удобство отладки (поиск ошибок), недостаток – сравнительно малая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (обычно с расширением .exe).

Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора[12].

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

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

Глава 2. Типы языков программирования высокого уровня и способы их реализации

2.1 Основные типы языков программирования высокого уровня

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

Языки программирования высокого уровня подразделяют на[13]:

  1. процедурно-ориентированные;
  2. проблемно-ориентированные;
  3. объектно-ориентированные.

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

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

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

1) Язык Фортран (Fortran). В 1954 году в недрах корпорации IBM группой разработчиков во главе с Джоном Бэкусом (John Backus) был создан язык программирования Fortran.

Это первый язык программирования высокого уровня. Значение его появления трудно переоценить. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры. Главной идеей, отличающей новый язык от ассемблера, была концепция подпрограмм. Напомним, что это современные компьютеры поддерживают подпрограммы на аппаратном уровне, предоставляя соответствующие команды и структуры данных (стек) прямо на уровне ассемблера, в 1954 же году это было совершенно не так. Поэтому компиляция Fortran’а была процессом отнюдь не тривиальным. Кроме того, синтаксическая структура языка была достаточно сложна для машинной обработки в первую очередь из-за того, что пробелы как синтаксические единицы вообще не использовались. Это порождало массу возможностей для скрытых ошибок, таких, например, в Фортране следующая конструкция описывает “цикл for до метки 10 при изменении индекса от 1 до 100”: DO 10 I=1,100. Если же здесь заменить запятую на точку, то получится оператор присваивания: DO10I = 1.100 Говорят, что такая ошибка заставила ракету взорваться во время старта.

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

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

К его основным достоинствам относится наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности встроенных средств обработки массивов[14].

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

2) Язык Бейсик (Basic). Язык программирования высокого уровня, разработанный в 1963 - 1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени.

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

Большинство версий Бейсика используют интерпретатор, который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы. На IBM PC широко используются Quick Basic фирмы Microsoft, Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing ). В начале 1999 г. фирма Microsoft выпустила версию языка Visual Basic 6.0 (VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий.

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

Одним из основных недостатков языка является то, что он поддерживает только операционные системы семейства Windows, DOS и Mac OS X, что значительно сужает сферы его применения. Также к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов.

3) Язык Си (С). Многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft), а также Zortech C (фирмы Symantec). В 1980-е гг. язык С был дополнен инструментами объектно-ориентированного программирования и на основе него был создан язык C++. Многие из указанных версий обеспечивают также работу с Си и Си++.

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

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

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

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

4) Язык Паскаль (Pascal). Был создан математиком Н. Виртом специально для обучения программированию. Однако со временем стал широко применяться для разработки программных средств в профессиональном программировании.

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

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

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

Язык Паскаль взят за основу в курсе программирования для школьников – это своего рода азбука для тех, кто впервые сталкивается с этой областью. Он достаточно легок и прост в изучении, и вместе с тем обладает всеми признаками классического языка программирования и позволяет научиться правилам хорошего тона и стиля в программировании. Познакомившись с языком программирования Паскаль, ребята смогут смело изучать более серьезные языки: Python, Java, PHP, С++ или даже С#. Для успешного освоения этого языка программирования никаких особенных навыков не требуется, нужны только базовые знания компьютера.

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

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

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

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

1) Язык Лисп. Считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP - язык для разработки надстроек в продуктах компании AutoDesk.

2) Язык Пролог. язык программирования высокого уровня, предназначенный для разработки систем и программ искусственного интеллекта. Пролог принят в качестве основного языка в японских ЭВМ пятого поколения. Относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0[17].

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

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

3) Язык Кобол был разработан специально для решения экономических задач. Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. Наиболее удачной версией языка Кобол на сегодняшний день является Кобол/U, в который встроены средства генерации отчетов с использованием языка РПГ.

4) Язык PL/1 разработан в 1964-1965 годах фирмой IBM. PL /1 относится к числу универсальных языков, т. е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т. д. По своим возможностям он перекрывает такие языки, как Фортран, Алгол-60 и Кобол, хотя в силу ряда причин вытеснить эти языки PL /1 не смог[18].

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

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

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

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

9) Язык СНОБОЛ располагает мощными средствами манипулирования строками и сравнения с образцом. В основном он используется для обработки текстов на естественном языке и применяется в экспертных системах. Известны некоторые версии языка СНОБОЛ, реализованные для ПК, но его применение ограничено сферой искусственного интеллекта[19]

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

В настоящий момент наиболее активно используются и развиваются следующие среды программирования:

а) Delphi (Lazarus некоммерческая - версия для ОС семейства Linux) - основана на Object Pascal;

б) C++, С# (~ C);

в) Visual Basic (~ Basic);

г) Visual Fortran (~ Fortran);

д) Prolog++ (~ Prolog).

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

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

2) Java снова занял самое высокое положение благодаря использованию для создания Android приложений, хотя несколько лет назад он несколько упал. Java можно использовать для мобильных приложений, на уровне предприятия, для создания десктопных приложений и для создания приложений Android на планшетах и смартфонах.

3) PHP - Хотя многие уже несколько лет как против PHP, он остается самым популярным языком для создания серверной части веб-приложений. PHP является основой самых популярных систем управления контентом (CMS), как например, WordPress.

4) JavaScript является незаменимым языком для создания клиентской части веб-приложений. Даже если использовать другие языки, как Elm, Clojure, Reason, результат компилируются в JavaScript. Единственное WebAssembly набирает все большую популярность, но и там JS незаменим для передачи данных. Кроме этого, JavaScript становится все популярнее для серверной части (NodeJs). Electron добавляет популярность для клиентских приложений (отметим, что даже Microsoft Visual Studio сделан на JavaScript). Плюс используя React Native многие крупные компании создают мобильные приложения на JavaScript.

5) Objective-C - iOS остается самой популярной платформой для мобильных приложений, для которой необходимо знать язык Objective-C, как минимум для того, чтобы использовать XCode, инструментом разработки программного обеспечения от Apple.

6) Ruby - Другой популярный язык программирования - это Ruby и Ruby on Rails. Этот язык программирования широко применяется для веб-программирования.

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

8) C, C++ и C# - считается базой для программирования, многие языки представленные выше разработаны на C. C ++ добавляет новые возможности объектно-ориентированного программирования, и очень широко используются при создании аппаратно ускоренных игр и в жизненно важных операционных системах, таких как Unix и Windows. C# наследует синтаксис С++ и многое заимствовано от языка Java. C# является основным языком для приложений от Microsoft, используя .Net и ASP.

9) SQL - Несмотря на появления баз данных noSQL, SQL (Standard Query Language) не теряет популярность для систем управления базами данных, так как многие используют MySQL, PostgreSQL, Microsoft SQL Server, Oracle и т. д. Это язык для построения запросов к базе данных и является больше стандартом, каждая база данных добавляет незначительные отличия.

10) Swift - считается самым модным языком программирования для расширения приложений для продуктов Apple. Многие используют его для приложений iOS, и MacOS/OSX.

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

2.2 Способы реализации языков программирования

Для написания любой программы недостаточно просто создать язык. Для каждого языка требуется свой переводчик. Такими переводчиками являются специальные программы-трансляторы.

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

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

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

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

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

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

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

Иногда один и тот же язык может использовать и компилятор, и интерпретатор. К числу таких языков относится, например, Бейсик. Как правило, программы-компиляторы и интерпретаторы называются так же, как и языки, для перевода с которых они предназначены. Слова Паскаль, Ада, Си могут относиться как к названиям языков, так и к названиям соответствующих программ.

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

Недостатком интерпретаторов является то, что они тихоходны. Ими затрачивается слишком много времени на разгадывание того, что делать, вместо того чтобы заниматься действительно делом. При исполнении программных операторов, интерпретатор должен сначала сканировать каждый оператор с целью прочтения его содержимого (что этот человек просит меня сделать?), а затем выполнить запрошенную операцию. Операторы в циклах сканируются излишне много. В реальных системах программирования перемешаны технологии и компиляции и интерпретации. Причиной вновь вспыхнувшего интереса к компиляторам стало появление быстрых и сложных 64-разрядных микропроцессоров, типичным представителем которых можно считать Intel Itanium. Ответственность за увеличение производительности, на которое потенциально способны будущие 64-разрядные процессоры, ложится на компиляторы нового поколения.Такие компиляторы уже создаются в исследовательских лабораториях ряда компаний -- Hewlett-Packard, Intel, MetaWare, Microsoft и других. В феврале прошлого года компания Silicon Graphics объявила о том, что ее оптимизированные компиляторы позволяют увеличить на 30-100% по сравнению с существующими продуктами производительность программ, работающих на компьютерах с процессорами Itanium и операционной системой Linux. Как и их предшественники, оптимизированные компиляторы преобразуют программы на высокоуровневом языке в машинный код. Помимо этого, они гарантируют максимально эффективное использование памяти (и в первую очередь процессорного кэша и механизма распараллеливания). Например, процессоры Itanium предназначены для того, чтобы одновременно обрабатывать до шести команд на каждый такт процессора. В прошлом году Microsoft анонсировала C#, объектно-ориентированный язык программирования, согласованный с XML. Корпорация подает новый язык как логическое продолжение Си и C++ для Web-приложений. Ключевыми модулями станут Common Language Runtime для C# и специальный компилятор, который преобразует текст, написанный на традиционных языках Кобол, Perl, Фортран или других, в промежуточный язык, который будет работать на новой платформе Microsoft .Net. Может появиться новое поколение компиляторов, позволяющих увеличить производительность до уровня, позволяющего убедить профессионалов в необходимости использовать 64-разрядные аппаратные архитектуры.

2.3 Классификация языков программирования

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

Существующие языки программирования классифицируют по четырём основным группам:

  1. процедурные;
  2. объектно-ориентированные;
  3. функциональные;
  4. логические.

Дадим краткие определения каждого подхода.

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

Декларативные языки программирования - это языки объявлений и построения структур. К ним относятся функциональные и логические языки программирования. В этих языках не производится алгоритмических действий явно, то есть алгоритм не задается программистом, а строится самой программой. В декларативных языках задается, производится построение какой-либо структуры или системы, то есть декларируются (объявляются) какие-то свойства создаваемого объекта. Эти языки получили широкое применение в системах автоматизированного проектирования (САПР), в так называемых CAD-пакетах, в моделировании, системах искусственного интеллекта.

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

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

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

Любой алгоритм, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования – чем меньше детализация, тем выше уровень языка. По этому критерию можно выделить следующие уровни языков программирования[20]:

• машинные;

• машинно-ориентированные (ассемблеры);

• машинно-независимые (языки высокого уровня).

Машинные языки и машинно-ориентированные языки - это языки, низкого уровня.

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

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

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

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

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

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

Машинный язык. Отдельный компьютер имеет свой определенный Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

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

Автокоды. Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями - расстановкой и генерированием. В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры.

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

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

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

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

Проблемных языков очень много, например, Фортран, Алгол - языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол - для работы со списочными структурами.

Универсальные языки. Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

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

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

Когда мы программируем, это не только развивает наше мышление, креативность и внимательность, но и стимулируем и активизируем головной мозг.

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

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

Например, программа BrowserAutomationStudio (BAS) - это инструмент, который позволяет быстро создавать полнофункциональные приложения с использованием браузера(или без), http клиента, почтового клиента, и других библиотек. Навыков программирования не требуется.
BAS бесплатная программа, её не нужно покупать. Есть premium версия программы, с несколькими дополнениями такими как запрет на декомпилирование программы, то есть если вы пишете программы с помощью bas вы можете их продавать другим, не думая о том, что она уйдет в публичный доступ помимо покупателя. Функционал этой программы очень обширный, в последнем обновлении было добавлено создание собственных модулей, что значительно упрощало работу с огромными функциями и циклами.
С помощью BAS можно автоматизировать ввод капчи на сайтах, загрузку фотографий, заполнение профилей и многое другое.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Монографии, учебники, учебные пособия

  1. Бобровский С. «Программная инженерия» С.Петербург, изд-во «Питер», 2003.
  2. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. —Харьков: Фолио, Ростов н/Д: Феникс, 1997.
  3. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989.
  4. Дагене В.А., Григас Г. К., Аугутис К.Ф. 100 задач по программированию. - М.: Просвещение, 1993.
  5. Информатика А.В. Могилев, Н.И.Пак, Е.К. Хённер. – М.: Издательский центр «Академия», 2007.
  6. Информатика. Базовый курс. 2-е издание / С. В. Симонович. - СПб.: Питер, 2007.
  7. Информатика. Теория и практика: Учеб. пособие / В.А. Острейковский, И.В. Полякова. – М.: Издательство Оникс, 2008.
  8. Информатика. Энциклопедический словарь-справочник: введение в современные информационные и телекоммуникационные технологии в терминах и фактах. / Ф. С. Воройский - М.: ФИЗМАТЛИТ, 2008.
  9. Информатика/Курносов А.П., Кулев С.А., Улезько А.В. и др.; Под ред. А.П. Курносова. - М.: КолосС, 2005. 272 с.
  10. Информатика: Учеб. пособие / А.В. Терехов, А.В. Чернышов, В.Н. Чернышов. – Тамбов: Издательство ТГТУ, 2007.
  11. Информатика: Учебник / Б.В. Соболь [и др.] - Изд. 3-е, дополн. и перераб. - Ростов н/Д: Феникс, 2007. - (Высшее образование).
  12. Павловская Т.А. С/С++: Программирование на языке высокого уровня. Учебник. - СПб.: Питер ,2001. - 460 с.
  13. Семакин И.А., Информатика: Базовый курс /Семакин И.А., Залогова Л., Русаков С., Шестакова Л. – Москва: БИНОМ.,2005. – 105с.

Интернет-ресурсы

14) Белов П.М. Основы алгоритмизации в информационных системах:
Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с. Режим доступа:
http://www.ict.edu.ru/ft/005406/nwpi225.pdf

15) Макаров В.Л. Программирование и основы алгоритмизации.: учебн.
пособие.-Спб., СЗТУ, 2003, - 110с. Режим доступа:
http://window.edu.ru/resource/126/25126/files/nwpi223.pdf

16) «Основы алгоритмизации и программирования» Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –56 с. Режим доступа: http://pnu.edu.ru/media/filer_public/2013/02/25/book_basics.pdf
17) Основы алгоритмизации и программирования : учебное пособие / Г.
Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. Режим доступа:
http://venec.ulstu.ru/lib/disk/2014/137.pdf

18) Программирование и основы алгоритмизации: Для инженерных
специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А.
Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского
национального исследовательского технического ун-та - КАИ, 2013, 153 с.
Режим доступа:  http://au.kai.ru/documents/Auzyak_Progr_osn_alg_C_2013.pdf

19) Интернет-источник: https://vk.com/@shkola_ajti-ot-assemblera-do-java-kratkaya-istoriya-programmirovaniya

  1. Информатика. Базовый курс. 2-е издание / С. В. Симонович. - СПб.: Питер, 2007.

  2. Информатика/Курносов А.П., Кулев С.А., Улезько А.В. и др.; Под ред. А.П. Курносова. - М.: КолосС, 2005. -272 с

  3. Бобровский С. «Программная инженерия» С. Петербург, изд-во «Питер», 2003

  4. «Основы алгоритмизации и программирования» Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –56 с. Режим доступа: http://pnu.edu.ru/media/filer_public/2013/02/25/book_basics.pdf

  5. Информатика: Учебник / Б.В. Соболь [и др.] - Изд. 3-е, дополн. и перераб. - Ростов н/Д: Феникс, 2007. - (Высшее образование).

  6. Интернет-источник: https://vk.com/@shkola_ajti-ot-assemblera-do-java-kratkaya-istoriya-programmirovaniya

  7. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. —Харьков: Фолио, Ростов н/Д: Феникс, 1997.

  8. Информатика А.В. Могилев, Н.И.Пак, Е.К. Хённер. – М.: Издательский центр «Академия», 2007.

  9. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013, 153 с. Режим доступа: http://au.kai.ru/documents/Auzyak_Progr_osn_alg_C_2013.pdf

  10. Информатика: Учеб. пособие / А.В. Терехов, А.В. Чернышов, В.Н. Чернышов. – Тамбов: Издательство ТГТУ, 2007.

  11. Информатика. Базовый курс. 2-е издание / С. В. Симонович. - СПб.: Питер, 2007.

  12. Семакин И.А., Информатика: Базовый курс /Семакин И.А., Залогова Л., Русаков С., Шестакова Л. – Москва: БИНОМ.,2005. – 105с.

  13. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989

  14. Дагене В.А., Григас Г. К., Аугутис К.Ф. 100 задач по программированию. - М.: Просвещение, 1993.

  15. Павловская Т.А. С/С++: Программирование на языке высокого уровня. Учебник. - СПб.: Питер ,2001. - 460 с.

  16. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989.

  17. Информатика. Энциклопедический словарь-справочник: введение в современные информационные и телекоммуникационные технологии в терминах и фактах. / Ф. С. Воройский - М.: ФИЗМАТЛИТ, 2008.

  18. Информатика А.В. Могилев, Н.И.Пак, Е.К. Хённер. – М.: Издательский центр «Академия», 2007.

  19. Информатика. Теория и практика: Учеб. пособие / В.А. Острейковский, И.В. Полякова. – М.: Издательство Оникс, 2008.

  20. Основы алгоритмизации и программирования: учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. Режим доступа: http://venec.ulstu.ru/lib/disk/2014/137.pdf

  21. Основы алгоритмизации и программирования: учебное пособие / Г.Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. Режим доступа: http://venec.ulstu.ru/lib/disk/2014/137.pdf