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

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

Содержание:

Введение

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

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

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

- рассмотреть современные языки программирования и их классификация;

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

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

Предмет исследования - современные языкы программирования.

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

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

1.1 Анализ современных языков программирования

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

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

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

Язык Dart, разработанный компанией Google, как один из языков веб-программирования.

Как и в JavaScript, в Dart используются синтаксисы и ключевые слова, похожие на те, которые используются в языке C. Однако одним существенным различием является то, что в то время как JavaScript основывается на прототипах, объекты в Dart определяются с помощью классов и интерфейсов, как в C++ или Java [2].

Идея его создания основана на том, чтобы сделать язык таким же привычным, гибким и динамичным как JavaScript. Но пока, что этот язык мало где возможно использовать потому, что разработан для запуска на клиенте, либо на сервере.

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

Язык больше похож на C или C++, чем на Java или C#. Однако, как и последние языки, Go включает в себя такие современные функции, как очистка памяти от ненужных данных, отражение текущих процессов выполнения и поддержку параллельности [2].

Секция «Информационно-экономические системы»

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

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

Среда выполнения Opa объединяет собственный веб-сервер и систему управления базой данных, которые не могут быть заменены самостоятельными альтернативами. Opa поставляется бесплатно и на данный момент доступен для 64-х битных Linux и Mac OS X платформ, другие же порты пока разрабатываются [2].

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

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

Система Wyvern является чем-то вроде компилятора одного мета-языка, в состав которого входят все известные и популярные языки программирования. Эта система позволяет программистам разрабатывать веб-страницы и приложения, используя напрямую все возможности С, PHP, HTML, CSS, JavaScript и других языков, и избегая необходимости использования некоторых искусственных приемов, которые являются источниками потенциальной опасности [3].

Данная система не единственная, примерами подобных программ являются - Scheme, ProteaJ, Spoofax и OJ. Они также решают вышеперечисленные задачи.

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

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

Еще одним новым языком программирования стал - язык Wolfram Alpha.

Wolfram Language является языком, основанным на обширной базе знаний при помощи которой можно создавать достаточно сложные приложения, не прибегая к процессу традиционного программирования. Wolfram Language является языком, опирающимся на огромную базу знаний, в которой заключены все типовые вычислительные операции [5].

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

1.2 Языки низкого и высокого уровня

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

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

Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.

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

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

К языкам программирования высокого уровня относят Фортран (переводчик формул – был разработан в середине 50–х годов программистами фирмы IBM и в основном используется для программ, выполняющих естественно – научные и математические расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис Ритч – 1972 году),Пролог (в основе языка лежит аппарат математической логики) и т.д.

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

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

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

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

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

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

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

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

– языки программирования пятого поколения: языки декларативные, объектно–ориентированные и визуальные. Например, Пролог, ЛИСП (используется для построения программ с использованием методов искусственного интеллекта), Си++, Visual Basic, Delphi.

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

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.

Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, к непроцедурному программированию относятся функциональные и логические языки.

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

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

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

Первый объектно-ориентированный язык программирования Simula был создан в 1960-х годах Нигаардом и Далом.

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

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

Глава 2 Рейтинг и возможности современных языков программирования

2.1 Рейтинг языков программирования 2018 года

Для программистов наступили благодатные времена. Не даром Департамент трудовой статистики Минтруда США прогнозирует восьмипроцентный рост востребованности профессии программиста в ближайшие семь лет, пишет Mashable. С помощью директора по контенту образовательной онлайн-платформы Lynda Дуга Винни, издание определило самые востребованные языки программирования в 2015 году.

1. Java

Java является одним из самых популярных языков для бэкэнд-разработки современных корпоративных веб-приложений. С Java и основанными на нём фреймворками разработчики могут создавать масштабируемые веб-приложения для широкого круга пользователей. Java — также основной язык, используемый для разработки родных Android-приложений для смартфонов и планшетов.

2. JavaScript

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

3. C#

C # является основным языком для разработки на платформах и сервисах Microsoft. Будь то разработка современных веб-приложений с использованием Azure и .NET, приложений для «девайсов» Windows или мощных «настольных» приложений для бизнеса, C# — самый быстрый способ использовать всё, что может предложить Microsoft. Кроме того, это и один из основных языков движка для разработки игр Unity.

4. PHP

Пишите веб-приложение для работы с данными? Язык PHP наряду с базами данных (например, MySQL) является важным инструментом для создания современных веб-приложений. На PHP разработано большинство сайтов, ориентированных на большой объём данных. Это также основополагающая технология мощных систем управления контентом, как WordPress.

5. С++

Если для максимальной отдачи мощности процессора вам необходимо подключиться непосредственно к железу, поможет язык C++. Это идеальный выбор для разработки мощного «настольного» программного обеспечения, игр с функцией аппаратного ускорения, а также приложений для ПК, консолей и мобильных устройств, требующих большого объёма памяти для работы.

6. Python

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

7. C

Почему язык C по-прежнему популярен? Из-за размера: маленький, быстрый и мощный. Если вы разрабатываете программное обеспечение для встраиваемых систем, работаете с системными ядрами или просто хотите выжать из имеющихся по рукой ресурсов всё до последней капли, C — то, что нужно.

8. SQL

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

9. Ruby

Хотите запустить проект в рекордно короткие сроки или создать прототип новой идеи для крутого веб-приложения? С помощью Ruby (и Ruby on Rails) это возможно довольно быстро. Обладая невероятной мощностью, язык прост в освоении. Плюс на нём написаны тонны популярных веб-приложений по всему миру.

10. Objective-C

Собираетесь написать приложение для iOS? Тогда вы просто обязаны знать Objective-C. Несмотря на прошлогоднюю шумиху вокруг нового языка Apple Swift, Objective-C по-прежнему остаётся основополагающим языком приложений для экосистемы Apple. С Objective-C и официальным инструментом разработки ПО от Apple XCode до App Store — рукой подать.

11. Perl

Можно ли назвать Perl эзотерическим языком? Да. Сбивает ли он с толку? Да. Является ли он супермощным языком и ключевым компонентом в арсенале кибербезопасности? Снова да. Разработчики используют Perl с самых истоков интернета, и он до сих пор считается ключевым инструментом для любого ИТ-специалиста.

12. .NET

Хотя и не язык сам по себе, .NET является ключевой платформой Microsoft для разработки облачных и не очень сервисов и приложений. Становится более продвинутым и ценным с каждым новым релизом. Благодаря последним усилиям Microsoft в области разработки с открытым исходным кодом, .NET теперь приходит на платформы Google и Apple. Как результат, вы можете использовать .NET с различными языками программирования для создания мультиплатформенных приложений.

13. Visual Basic

Ключевой язык .NET-платформы, Visual Basic позволяет создавать приложения для поддержки бизнеса, а также автоматизировать мощные приложения MSOffice.

2.2 Возможности языков программирования

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

История развития языков программирования высокого уровня довольно обширна и весьма разнообразна, её начало принято относить к середине прошлого века - моменту создания первого языка программирования высокого уровня «Фортран»[6]. Именно с появлением ЯП ВУ компьютеры начали реализовывать весь свой потенциал. Языки программирования высокого уровня помогли сделать программы более понятными и читаемыми, позволили обрабатывать очень длинные запросы, ввод программного кода стал интуитивнее для пользователя.

C ростом потребностей в расчетах появились новые задачи для компьютеров, вследствие чего, языки программирования стали быстро модифицироваться. Программы стали сложнее, были попытки создать универсальный язык программирования, например такой, как ПЛ/1. В то время это оказало лишь обратное действие на пользователей прикладного программного обеспечения. Ввиду громоздкости управляющих конструкций языка и сложности для понимания концепции вычислительной модели, язык, не смотря на то, что изучался в вузах и использовался для инженерных расчётов, так и не получил широкого распространения. Вывод был очевиден: тяжело реализовать сложную конструкцию с простым интерфейсом, ориентированную «на всё».

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

Следующая веха развития программирования - появление процедур и функций в структурном программировании, что позволило объединить разнородные данные и сделать программы автономными и управляемыми. На этом этапе развития языков программирования было выявлено: когда программа достигает определенной длины, то она уже не может обрабатывать правильно сложные запросы. Примером языка, в котором проявился этот недостаток, является ЯП ВУ «Simula - 67».

Развитие структурирования привело к появлению классовых структур, где программы разбиваются на классы - структуры данных, содержащие в себе переменные и функции, которые работают с этим переменными. Такой подход послужил к объектно-ориентированному программированию, которое содержало в себе такие концепты, как полиморфизм, инкапсуляция и наследование. Примерами могут служить языки Java, Oberon, C++ . Это и есть апогей развития языков программирования, данные языки относятся к прошлому столетию, но актуальность их не потеряна и в настоящее время. Эти языки можно совершенствовать и брать за основу их концепции, чтобы попробовать достичь каких-либо преимуществ во вновь создаваемых инструментах написания программного кода. Надо отметить, что первые версии языков с незначительной доработкой являются базовыми при начальном обучении технологии программирования бакалавров.

Языки создаются и эволюционируют постоянно. Их влияние нельзя недооценивать на обработку современных научно- технических расчетов, на моделирование сложных процессов и систем в различных прикладных областях экономической деятельности человечества. Эволюцию и взаимовлияние ЯП ВУ задаёт генеалогическое дерево[6].

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

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

Elm - функциональный язык программирования для создания GUI - Graphical User Interface, использующий синтаксис в стиле функционального языка программирования «Haskell». Родственные связи этих языков показаны на схеме (рис. 1 ).

Рис. 1 - Связи языка Elm

Этот функциональный язык удобен и прост - программный код в несколько строк обеспечивает пользователю возможность рисования мышью любой фигуры в клиентской программе или в окне браузера. Интересна вычислительная модель реактивного функционального программирования - Functional Reactive Programming (FRP), положенная в основу данного языка. Данная парадигма ориентирована на работу с динамическими потоками данных и позволяет создавать приложения с высокой степенью интерактивности. Концепция FRP впервые была предложена Коналом Эллиоттом (Conal Elliott) при разработке функционального предметно-ориентированного языка для программирования анимации[3].

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

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

Если рассмотреть генеалогические связи этого языка (рис. 2), то можно выделить конкретные преимущества данного ЯП ВУ.

Рис. 2 - Структурные связи Swift

Swift сочетает в себе понятность именованных параметров и мощь динамической объектной модели Objective-C, а также открывает доступ к уже существующим интерфейсам прикладного программирования для различных операционных систем [7].

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

Кроме того, скорость реализации некоторых алгоритмов на Swift в 3,9 раза выше, чем на Python, и лаконичней, ввиду того, что в языке максимально искоренён такой недостаток как многословность, присущая Objective-C [1].

Если рассмотреть программные продукты ведущих корпораций - разработчиков современного программного обеспечения, то интересен для исследования обучаемыми язык программирования высокого уровня «Go» от корпорации Google (рис.3).

Рис. 3-Связи языка Go

Go -компилируемый, многопоточный язык программирования. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались авторы, стоявшие у истоков создания языка C и операционной системы UNIX: Роберт Гризмер, Роб Пайк и Кен Томпсон [4].

В языке Go реализованы различные удобства: множественные возвраты из функций, простота представления и лёгкость работы со строками, что привлекает к этому приятному ЯП ВУ новых почитателей и программистов.

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

Как показывает анализ родственных связей, язык программирования высокого уровня «Go» опирается на мощный фундамент языков С и С++, а также поддержку компании Google, одной из самых крупных ИТ-компаний на сегодняшний день.

Веб-программирование - тот раздел программирования, к которому студенты испытывают огромный интерес, поэтому стоит обратить внимание на современные ЯП ВУ Dart и TypeScript, как альтернативу уже широко известному языку программирования JavaScript.

Dart - действительно новый язык и при его разработке были учтены следующие аспекты, которые так или иначе мешали его «родственникам» (рис. 4).

Рис. 4 - Генеалогические связи языка Dart

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

Во-вторых, он приемник уже существующих языков JavaScript, Go - которые популярны среди разработчиков программного кода, и переход к Dart и обучение ему, естественно, упрощается. Как и в JavaScript, в Dart используется синтаксис похожий на язык C. Но различие в том, что JavaScript основывается на прототипах, тогда как объекты в Dart определяются при помощи классов и интерфейсов(как в C++ или Java). Также Dart позволяет дополнительно задать переменные со статическими типами.

Как показывает короткий промежуток существования этого языка, он становится столь же привычным, динамичным и гибким языком, как и JavaScript, а написанные на нём коды - быстрее и легче в выполнении. Кроме того, созданные на этом языке программы - высокопроизводительны и успешно работают на вычислительных устройствах широкого класса: от смартфонов до серверов. Очень важен для любого ЯП ВУ стандарт, и 4 июля 2014Ассоциацией стандартизации информационных и коммуникационных технологий была одобрена первая редакция стандарта языка [5].

Кроме компании Google, компания Microsoft представила свой аналог JavaScript - TypeScript (рис. 5).

Рис. 5 - Связи языка TypeScript

TypeScript - язык программирования, как уже было отмечено выше, может позиционироваться как средство разработки веб- приложений, расширяющее возможности JavaScript. Разработчиком языка TypeScript является Андерс Хейлсберг, создавший ранее Tur- boPascal, Delphi и C#.

Язык работает в любом браузере, поддерживается в таких популярных средах визуального программирования, как Microsoft Visual Studio, и совместим с некоторыми JavaScript-библиотеками, среди которых jQuery. Язык TypeScript является обратно совместимым с JavaScript (может легко компилироваться в этот язык) [2].

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

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

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

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

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

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

Глава 3 Классификация и характеристика современных языков программирования

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

Функционирование ЭВМ осуществляется на основе принципа программного

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

реализующих алгоритм решения задачи, вводится в память ЭВМ, после чего

начинается ее автоматическое выполнение с первой команды. После каждой

выполненной команды машина автоматически переходит к выполнению

следующей команды, и так до тех пор, пока не встретится команда,

предписывающая закончить вычисления.

Структура команды ЭВМ в простейшем случае включает в себя две части:

операционную и адресную. Операционная часть содержит код операции

(сложить, вычесть, ...). Адресная часть содержит адреса ячеек памяти; в них

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

В зависимости от числа адресов, указанных в команде,

различают одно-, двух-, трехадресные команды.

Физические принципы работы электронных устройств ЭВМ таковы, что

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

т.е. машинный код. На начальной стадии развития ЭВМ человеку было

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

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

операндов, выраженных в виде различных сочетаний единиц и нулей.

Как показала в дальнейшем практика общения с компьютером, такой язык

громоздок и неудобен. При пользовании им легко допустить ошибку, записав не

в той последовательности 1 или 0. Программу очень трудно контролировать.

Кроме того, при программировании в машинных кодах надо хорошо знать

внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в

таком языке, что программирование в машинных кодах требует от программиста

много времени, труда, повышенного внимания.

Это привело к необходимости найти такое средство, которое позволит более

просто наладить общение человека и компьютера. И такое средство было

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

(системы программирования).

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

Для автоматизации программирования разрабатывался для каждой ЭВМ свой

автокод (или Ассемблер). Этот язык в полной мере повторяет набор команд

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

машинном коде.

Пример программы на Ассемблере

Дальнейшее развитие языковых средств шло по пути создания машинно-

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

ЭВМ с предусмотренной возможностью переноса на более совершенную

архитектуру.

В мире насчитывается несколько сотен символических языков

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

классифицированы по различным признакам.

Если в качестве признака классификации взять синтаксис образования

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

следующие классы:

  • машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
  • машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (Ассемблеры);
  • алгоритмические языки (algorithmic language) – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
  • процедурно-ориентированные языки (procedure-oriented language) – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
  • проблемно-ориентированные языки (universal programming language) – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
  • интегрированные системы программирования.

Если в качестве признака классификации взять принадлежность к одному из

оформившихся к настоящему времени стилей программирования, каждому из

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

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

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

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

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

Одним из важнейших квалификационных признаков процедурных языков

является их уровень, характеризующий степень близости языка

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

принимается

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

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

Некоторые языки программирования в порядке увеличения их уровня

Двоичный язык – в настоящее время программистами не применяется.

Шестнадцатеричный язык – упрощение за счет представления четырех

двоичных цифр одной шестнадцатеричной. Используется в качестве дополнения

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

выполнения фрагментов алгоритмов.

Язык Ассемблера – предназначен для представления в удобочитаемой

символической форме программ, написанных на машинном языке.

Язык программирования C – разработан в начале 70-х годов. Сочетает

достоинства современных высокоуровневых языков

(в части структур данных и управляющих структур) и возможность доступа к

аппаратным средствам

машины на уровне языка Ассемблера.

Fortran (Formula Translator) разработан в 1956 г. Считается «рабочей лошадью»

научных работников за счет своей «приспособленности» к ведению сложных

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

ограниченность и «корявость».

Pascal – разработан в 1968 г. профессором Никлаусом Виртом. Язык назван в

честь французского учёного Блеза Паскаля, внесшего вклад в развитие средств

вычислительной техники. Modula-2 – создан в 1978 г. Никлаусом Виртом для создания системного программного обеспечения. По существу – развитие Паскаля. Его особенности состоят в высокой модульности программ и наличии средств описания параллельных процессов.

Ada – разработан в 1979 г. по заказу Министерства обороны США для

использования во встроенных системах с управляющими ЭВМ, что требует

поддержки режима реального времени.

Logo – разработан с целью обучения детей и используется в настоящее время.

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

процедуры, графические средства и т.д.

Функциональные языки программирования. Программа на таком языке

представляет собой совокупность описаний функций и выражения, которые

необходимо вычислить. Функциональное программирование не использует

концепцию памяти как хранилища значений переменных. Операторы

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

памяти, а объект программы, что полностью соответствует понятию переменной

в математике. Наличие стройной математической основы обеспечивает

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

преобразования и исследования программ. Это в какой-то мере приближает их к

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

является язык LISP (List Processing – обработка списков). Разработан и реализован

в Массачусетском технологическом институте в 1959 г. Рассматривается

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

интеллекта.

Логическое программирование. Логика и программирование долгое время были

непересекающимися областями исследований. Только в 1973 впервые было

опубликовано описание языка PROLOG (PROgramming in LOGic –

программирование в терминах логики). Центральным понятием в логическом

программировании является отношение. Программа представляет собой

совокупность определений отношений между объектами и цели. В логическом

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

основывается, а не определять последовательность шагов, которые требуется

выполнить. Логические программы отличаются принципиально низким

быстродействием, так как вычисления осуществляются методом проб и ошибок

(посредством поиска с возвратами). В настоящее время для ПК существует около

двух десятков реализации PROLOG’а, некоторые из них оформлены в виде

интегрированных сред.

Объектно-ориентированное программирование. Корни объектно-

ориентированного программирования уходят в одну из ветвей логики, в которой

первичной является не отношение, а объект. Прототипом объектно-

ориентированного программирования явился язык SIMULA-67. Этот стиль

программирования характеризуется богатыми графическими возможностями и

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

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

пример объектно-ориентированного языка можно назвать

Visual Basic и Delphi.

3.2 Характеристика некоторых языков программирования. Понятие системы программирования

Язык C – это самый распространённый язык программирования. На нём

написано больше программ, чем на

любом другом. Подавляющее большинство профессиональных программистов

владеют им. Исторически этот язык неотделим от операционной системы UNIX,

которая в наши дни переживает своё второе рождение. 60-е годы были эпохой

становления операционных систем и языков программирования высокого

уровня. Язык с самого начала создавался так, чтобы на нём можно было писать

системные задачи. Разработчики языка – Кеннет Томсон и Деннис Ричи. Но

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

данных и объектов, обработки исключений) в начале 80-х годов Бьерн

Страуструп стал разрабатывать расширение языка С под условным названием

«C с классами». Первый коммерческий транслятор «С++» появился в 1983 году.

\Одна из главных целей создания С++ – увеличить процент повторного

использования уже написанного кода. Когда появился язык Java, на него

обратили очень пристальное внимание, так как он был близок по синтаксису C++

и показался знакомым многим программистам. Однако он не стал, как опасались

некоторые, «убийцей С++».

Текст программы на C++

Pascal и Delphi

Pascal. Язык Паскаль, названный в честь французского математика и философа

Блеза Паскаля (1623– 1662), был создан как учебный язык программирования в

1968–1971 годах Никлаусом Виртом в Высшей технической школе (ETH) в

Цюрихе. Этот язык быстро превратился из средства для обучения студентов

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

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

языков высокого уровня было не много, к тому же все они, в отличие от языка Pascal, были созданы для решения конкретных задач. Целью работы Н. Вирта было создание языка, который:

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

Фрагмент программы на Pascal

Delphi – это не что иное, как Visual Pascal. Благодаря созданию этой среды

программирования простые программы (Windows-приложения) может писать

практически любой пользователь.

Basic. Это одни из самых старых языков программирования. Его создатели –

Джон Кемени и Том Куртц, работавшие в Дортмундском колледже в 1964 году.

Свой язык они назвали по первым буквам слов «Begin- ner’s All Purpose Symbolic

Instructions Code». Интерпретатор Basic был первым программным продуктом

фирмы Microsoft, основанной Полом Аленом и Уильямом Гейтсом в 1975 году.

В дальнейшем он не только поставлялся как программа, но и зашивался в ПЗУ

компьютеров.

Фрагмент программы на Basic’е

В середине 80-х годов фирма Microsoft разработала QuickBASIC. Это был уже

компилятор, а не интерпретатор. Вообще языков Basic несколько сотен. После

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

Visual Basic.

FORTRAN. Это старейший язык программирования. В начале 50-х годов он был

разработан исследовательской группой под руководством Джона Бэкуса. Его

название происходит от 2 слов: FORMULA TRANSLATION.

Первая версия системы FORTRAN для компьютера

IBM была выпущена в начале 1957 г.

Характерной чертой языка была специфическая форма записи программ. Текст

программы записывался строками фиксированной длины по 80 знаков, что

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

Язык постепенно избавлялся от недостатков. Так появился FORTRAN IV, затем

в 1977 г. – FORTRAN 77, в 1991 г. – очередной стандарт FORTRAN 91.

Текст программы на Fortran’е

ADA. По сложности этот язык сравнивают с С++. Назван в честь леди Ады

Августы Лавлейс (дочери Байрона), работавшей вместе с Чарльзом Бэббиджем

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

считается первым в мире программистом. Разработан язык в 1979 г. группой под

руководством Жана Ишбиа в рамках конкурса, объявленного Министерством

Обороны США, поскольку разработки в этом ведомстве велись до этого на

многих языках и ни один из них не удовлетворял всем задачам. ADA –

универсальный высокоуровневый язык программирования. Он – модульный и

даже объектный, но не объектно-ориентированный. Как и все языки, он

развивался. Мода на объектно-ориентированное программирование привела к

созданию принципиально новой его версии ADA95.

Текст программы на Ada

Понятие системы программирования

Чтобы вычислительная машина могла выполнить программу,

написанную на каком-либо языке программирования, в её программном

обеспечении должна быть программа-транслятор для этого языка.

Схема работы транслятора

Транслятор представляет собой программу, на основе которой машина

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

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

языке машины, и алгоритмы, заданные на другом языке, должны быть перед

их выполнением переведены на машинный язык.

Трансляторы бывают двух типов:

  • интерпретаторы;
  • компиляторы.

Интерпретатор переводит каждую команду программы с одновременным её

выполнением и, если обнаруживает ошибку, сообщает о ней и прекращает

выполнение программы.

Компилятор переводит всю программу целиком и в конце работы выдаёт

список ошибок, если они обнаружены.

Также система программирования может включать в себя:

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

Появление новых поколений ЭВМ обусловлено расширением сферы их

применения, требующей более производительной и надежной

вычислительной техники.

В настоящее время стремление к реализации новых потребительских

свойств ЭВМ стимулирует работы по созданию новых и усовершенствованию

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

качественно новым функциональным требованиям:

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

В настоящее время ведутся интенсивные работы как по созданию ЭВМ пятого

поколения традиционной (неймановской) архитектуры, так и по созданию и

апробации перспективных архитектур и схемотехнических решений в области

программирования. Развитие технологий

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

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

элементарной базой, степенью развития

параллельного программного обеспечения и методологией распараллеливания

алгоритмов решаемых задач.

Проблема создания эффективных систем параллельного программирования,

ориентированных на высокоуровневое распараллеливание алгоритмов

вычислений и обработки данных, представляется достаточно сложной и

предполагает дифференцированный подход с учетом сложности

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

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

Важным направлением развития вычислительных и программных средств

является интеллектуализация ЭВМ, связанная с наделением ее элементами

интеллекта, интеллектуализацией интерфейса с пользователем и т.д.

Работа в данном направлении, затрагивая, в первую очередь, программное

обеспечение, потребует и создания ЭВМ определенной архитектуры,

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

базами знаний, – компьютеров баз знаний,

а также других подклассов ЭВМ. При этом ЭВМ должна обладать

способностью

к обучению, производить ассоциативную обработку информации и вести

интеллектуальный диалог при решении конкретных задач.

Современные языки программирования похожи друг на друга: каждый из них

содержит конструкции (операторы, типы данных и другие),

имеющие аналоги в

других языках программирования.

В то же время идентичность языков далеко не

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

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

Конструкции современных языков имеют общее содержание (семантику), но

различный порядок

следования компонент (синтаксис) и разные ключевые слова

(лексику). Таким образом, различные языки предоставляют программисту

одинаковые возможности (при различном внешнем виде программ).

Сравнивая между собой конструкции современных языков программирования

выделив их общую составляющую, можно описать

(не создать, а именно описать уже существующий de facto!)

«универсальный» язык программирования

(правда, только на семантическом уровне).

Существующая ныне система стандартизации языков программирования не

способствует выполнению этой задачи. Главная проблема состоит в том, что

при описании стандарта семантическая составляющая не отделена от

синтаксиса и лексики. Кроме того, при модернизации стандартов комитеты

ISO/ANSI предпочитают скорее добавлять в язык новые возможности, чем

исключать редко используемые, что приводит к неоправданному

синтаксическому расширению языков.

Создание входного языка для многоязыкового компилятора можно произвести

двумя различными способами:

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

Разумеется, в чистом виде ни один из этих подходов применяться не должен,

но, тем не менее, более правильным представляется первый вариант,

поскольку в «области пересечения» содержится исторически наработанный

необходимый минимум семантических конструкций.

Стремительное развитие компьютерной индустрии не может не поставить

перед создателями «средств производства»

программ (компиляторов) новые задачи.

Компиляторы должны стать более «адекватными» эпохе визуального

программирования и Интернета. Последнее время высока популярность

WWW- программирования. Языки WWW- программирования обладают рядом

свойств, которые позволяют использовать их

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

это интерпретаторы (такие, как Perl, PHP), позволяющие использовать их на

стороне сервера, или языки, поддерживаемые клиентом (браузеры) – HTML,

XML, Java, JavaScript, или специальные модули (plug-in),

расширяющие клиента – Flash.

Унификация языков программирования и создание общепринятой

семантической базы – необходимые условия продолжения прогресса в этой

области программного обеспечения, и, в конечном итоге, всей компьютерной

индустрии.

Заключение

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

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

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

Список литературы

  1. Артюшенко, В. М. Системный анализ в области управления и обработки информации: монография [Текст] / В.М. Артюшенко, Т.С. Аббасова, Ю.В. Стреналюк, Н.А. Васильев, И.М. Белюченко, К.Л. Самаров, В.Н. Зиновьев, С.П. Посеренин, Г.Г. Вокин, А.П. Мороз, В.С. Шайдуров, С.С. Шаврин /под науч. ред. док. техн. наук, проф. В.М. Артюшенко. - Королев МО: МГОТУ, 2015. - 168 с.
  2. Артюшенко, В. М. Информационные технологии и управляющие системы: монография [Текст] / В.М. Артюшенко, Т.С. Аббасова, Ю.В. Стреналюк, В.И. Привалов, В.И. Воловач, Е.П. Шевченко, В.М. Зимин, Е.С. Харламова, А.Э. Аббасов, Б.А. Кучеров /под науч. ред. док. техн. наук, проф. В.М. Артюшенко. - М.: Издательство «Научный консультант», 2015. - 185 с.
  3. Артюшенко, В. М.Современные направления развития корпоративных сетей спутниковой связи [Текст] / В.М. Артюшенко, Т.С.Аббасова, Б.А. Кучеров // Двойные технологии. - 2014. - №3(68). - С.67-72.
  4. Зачем язык программирования Swift нужен Apple и вам: [Электронный ресурс] // Lookatme.URL: http://www.lookatme.ru/mag/ live/inspiration-lists/204771 -swift
  5. Исаева, Г. Н. Об индуктивном подходе к приобретению знаний в экспертных системах управления персоналом [Текст] / Г.Н. Исаева // Вопросы региональной экономики - 2010. Т.5. - С. 100-105.
  6. Когтев, П.А. Определение местоположения объектов в помещениях ВУЗа с помощью технологии ZigBee [Текст] /П.А.Когтев, Н.В.Логачева, Г.Н.Исаева // Перспективы, организационные формы и эффективность развития сотрудничества российских и зарубежных ВУЗов.Сборник материалов Международной научно-практической конференции 24-25 апреля 2014 г.: Королев МО: ФТА. Изд-во «Канцлер», 2014. - С.357-363.
  7. Компания Microsoft представила TypeScript, новую открытую альтернативу JavaScript: [Электронный ресурс] // OpenNet.URL: http:// www.opennet.ru/opennews/art.shtml?num=34981
  8. Новости свободного ПО: [Электронный ресурс] // Компьютерные вести.икь: http://www.kv.by/content/325304-novostisvobo dnogo-po
  9. Олег Цилюрик. Сравнительное обозрение языков программирования [Электронный ресурс] // Редакция 2.31. 2014 год. - 78с.
  10. Сайт о языке программирования Dart - руководства, инструкции, новости, статьи и многое другое: [Электронный ресурс] // dartdot.ru.URL: http://dartdot.ru/
  11. Свердлов, С. З. Языки программирования и методы трансляции [Текст] / С.З. Свердлов // Питер: 2007.
  12. Язык Wolfram Alpha - революция в области программирования // DailyTechlnfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/5709-yazyk-wolfram-alpha-revolyuciya-v- oblasti-programmirovaniya.html (дата обращения: 15.08.2018).
  13. Язык программирования Swift. Русская версия: [Электронный ресурс] // Хабрахабр.URL: http://habrahabr.ru/post/225841/
  14. Языки программирования [Электронный ресурс]. URL: http://life-prog.ru (дата обращения: 15.08.2018).
  15. McALLISTER N. InfoWorld. «10 языков программирования, которые могут перевернуть мир IT» // Компьютерные вести [Электронный ресурс]. URL: http://www.kv.by/content/325498-10-yazykov- programmirovaniya-kotorye-mogut-perevernut-mir-it (дата обращения: 15.08.2018).
  16. Sketch - новый язык программирования, способный самостоятельно оптимизировать и завершать незаконченные участки кода // DailyTechlnfo [Электронный ресурс]. URL: http://www. dailytechinfo.org/infotech/5691-sketch-novyy-yazyk-programmirovaniya-sposobnyy-samostoyatelno- optimizirovat-i-zavershat-nezakonchennye-uchastki-koda.html (дата обращения: 15.08.2018).
  17. Wyvern - новая система, позволяющая использовать несколько разных языков программирования при создании одной программы // Daily Techlnfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/6167-wyvern-novaya-sistema-pozvolyayuschaya-ispolzovat-neskolko- raznyh-yazykov-programmirovaniya-pri-sozdanii-odnoy-programmy.html (дата обращения: 15.08.2018).
  18. Андреев, А. Эволюция современных языков программирования / А. Андреев // Мир ПК. – 2001. – № 3. – (http://www.osp.ru/pcworld/2001/03 /056.htm)
  19. Информатика: учебник / под ред. проф. Н.В. Макаровой. – М.: Финансы и статистика, 1997. – 768 с.
  20. Кауфман, В. Языки программирования. Концепции и принципы. / В. Кауфман. – М.: Радио и связь, 1999.

– 231 c.

  1. Коцюбинский, А.О. Хрестоматия работы на компьютере: практ. пособ. / А.О. Коцюбинский, С.В. Грошев – М.: Изд-во «ТРИУМФ», 2001. – 640 с.Турбо Паскаль 7.0. – К.: Издат. группа BHV, 1998. – 448 с.
  2. Гедранович, В.В. Основы информатики и вычислительной техники: учеб.-метод. комплекс: в 2 ч. / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2006