Файл: Современные языки программирования (Понятие. Сущность).pdf
Добавлен: 23.04.2023
Просмотров: 276
Скачиваний: 2
rustc hello.rs
./hello
2.3 Язык Dart
Dart- язык структурного веб-программирования, созданный Google для веб-разработки с открытым исходным кодом.
Dart позволяет создавать быстрые и высокопроизводительные веб- приложения.
Целью разработчиков было замещение JavaScript, страдающего от «фундаментальных» изъянов, которые невозможно исправить путём эволюционного развития,
в роли универсального языка веб-разработки.
Dart создан под влиянием:
C#;
CMAScript.
Парадигма Dart:
императивная;
на уровне значений;
объектно-ориентированная;
скалярная;
структурная.
Типизация Dart:
статическая.
типизированная.
Ключевые преимущества Dart:
Классы и интерфейсы, которые обеспечивают простой и понятный механизм для чётко определённых API. Эти конструкции также обеспечивают инкапсуляцию и повторное использование методов и данных.
Дополнительные типы (optional types), благодаря которым можно переходить от самых простых приложений к сложным модульным системам, а также использовать дебаггеры для проверки типов.
Поддержка библиотек.
Инструментарий. Планируется создать множество дополнительных программ в помощь разработчику.
В качестве примера приведём программу Hello, World!
main() {
print('Hello World!');
}
2.4 Язык Swift
Swift- открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и macOS. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более лёгкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C[7]. Программы на Swift компилируются при помощи LLVM, входящей в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также С) в рамках одной программы.
Swift вобрал в себя лучшее из таких языков, как C, Objective-C и Java.
Apple разделила код Swift на несколько открытых репозиториев:
Компилятор и стандартная библиотека:
Swift: основной Swift репозиторий, который содержит исходный код для компилятора Swift, стандартная библиотека и SourceKit;
Swift-Evolution: документы, относящиеся к продолжающемуся развитию Swift, включая цели для предстоящих выпусков, предложения для изменений и расширений Swift;
Библиотеки ядра:
Swift corelibs-foundation: исходный код для Foundation, который предоставляет общую функциональность для всех приложений;
Swift corelibs-libdispatch: исходный код для libdispatch, который предоставляет примитивы параллелизма для работы на многоядерном аппаратном обеспечении;
Swift corelibs-xctest: исходный код для XCTest, который обеспечивает фундаментальную инфраструктуру тестирования для Swift-приложений и библиотек;
Менеджер пакетов:
Swift package-manager: исходный код для менеджера пакетов Swift;
Swift llbuild: исходный код для llbuild, система низкого уровня, который использует Swift package-manager;
Клонированные репозитории:
Swift опирается на несколько других проектов с открытым кодом, особенно на компилятор LLVM.
Swift llvm: исходный код LLVM, с кусочками Swift-дополнений;
Swift clang: исходный код для Clang, с кусочками Swift дополнений;
Swift lldb: исходный код Swift-версии LLDB, для отладки Swift программ;
В качестве примера приведём программу Hello, World!
print("Hello, world")
let peoples = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25]
for (name, age) in peoples {
print("\(name) is \(age) years old.")
}
За последние годы Swift стал более популярен, чем Objective-C. Кроме того, этот язык программирования имеет наибольший потенциал для изменения будущего. Было обнаружено, что нативные приложения превосходят кросс-платформенные гибридные приложения, а движок SpriteKit при этом упрощает создание 2D-игр. На деле Swift опирается на успехи C и Objective-C, но при этом без ограничений совместимости.
2.5 Язык Ceylon
Ceylon- императивный язык программирования, ориентированный на командную разработку крупных приложений.
Ceylon создан в 2011 году под влиянием:
C#;
Java.
Парадигма:
императивная;
на уровне значений;
объектно-ориентированная;
процедурная;
скалярная.
Типизация:
статическая;
типизированная.
Первый релиз языка Ceylon M1 был выпущен 17 декабря 2011 года и охватывает примерно 80% запланированных возможностей языка.
Принципы дизайна языка:
читабельность кода- параметр, значение которого возрастает с ростом размера команды разработчиков;
предсказуемость- поведение компилятора и программы должно быть интуитивно понятно, даже если ради этого придется пожертвовать некоторыми возможностями;
инструментарий — разработка программ ведется значительно продуктивнее при наличии среды разработки (IDE), поэтому Ceylon должен иметь свою IDE. Кроме того, сообщения об ошибках должны быть максимально информативны;
модульность, значение которой возрастает с ростом размеров разрабатываемых программ;
метапрограммирование: многие библиотеки и сложные фреймворки основаны на возможности писать код, который обрабатывает другой код.
Синтаксис языка похож на Java и C#. Ceylon в значительной мере основан на Java, но использует только лучшие решения, исправляя и улучшая неудачные.
В качестве примера приведём программу Hello, World!
Допустим, эта программа принадлежит модулю helloworld.progopedia.com. Тогда сам код программы должен находиться в файле /source/com/progopedia/helloworld.ceylon (относительно главной директории программы, из которой она будет запускаться). Кроме того, в файле /source/com/progopedia/module.ceylon должно находиться описание модуля, например, такое:
Module module {
name = 'com.progopedia.helloworld';
version = '1.0.0';
by = {"Mariia Mykhailova"};
dependencies = {};
doc = "Hello, World!";
license = 'Public domain';
}
После этого программу можно скомпилировать командой ceylonc com.progopedia.helloworld и запустить командой ceylon com.progopedia.helloworld/1.0.0 (указание версии при запуске обязательно).
void run() {
print("Hello, World!");
}
2.6 Язык Entropy
Entropy- неточный эзотерический язык программирования. Entropy создан в 2010 году Дениелом Темкиным.
Исходный код программ на Entropy выглядит вполне обычно. Основная особенность этого языка заключается в том, что в процессе выполнения программы данные, которыми она оперирует, ветшают и постепенно приходят в негодность. Основной тип данных- real- числа с плавающей точкой, которые немного изменяются каждый раз, когда к ним обращаются. Символьный тип char построен на real: когда “символ” нужно вывести на печать, его значение округляется до ближайшего целого, и выводится соответствующий символ.
Из этой особенности следуют некоторые другие. В языке не определена проверка чисел на равенство- только сравнения “больше” и “меньше”. Константы (например, строковые) определяются один раз и изменяются при каждом к ним обращении; так, вывод одного и того же текста в цикле будет давать все более произвольный результат.
Парадигма:
императивная;
эзотерическая.
Типизация:
бестиповая.
В качестве примера приведём программу Hello, World!
Программа может выдать правильное сообщение или текст, несколько отличающийся от него за счет ветшания строки “Hello, World!”.
Program Hello HelloWorld
{
print "Hello, World!";
}
2.7 Язык Foma
Foma- это язык программирования для создания конечных автоматов и трансдьюсеров. Foma создан в 2010 году.
Парадигма:
автоматное программирование.
В качестве примера приведём программу Hello, World!
echo Hello, World!
2.8 Язык Opa
Opa- веб-ориентированная платформа разработки, состоящая из языка программирования (со средой исполнения), веб-сервера и СУБД. Opa создан в 2010 году.
На одном и том же языке Opa пишется и клиентская, и серверная части веб-приложения (клиентский код компилируется в JavaScript).
Компилятор и библиотеки Opa написаны на Objective CAML.
Платформа Opa — свободное программное обеспечение (код открыт в 2011 году), разрабатывается компанией MLstate.
Парадигма:
функциональная.
Типизация:
статическая;
строгая.
2.9 Язык Grocery List
Grocery List- эзотерический язык программирования, в котором все программы выглядят как списки покупок для супермаркета. Каждый пункт списка выполняет определенное действие в зависимости от его первой буквы.
Grocery List создан в августе 2009 года.
Основная структура данных языка- стек целых чисел. Все действия производятся над этим стеком. Программа- список состоит из заголовка, отделенного пустой строкой, в котором указывается название магазина. Каждый пункт списка пишется с новой строки.
Парадигма:
на уровне значений;
скалярная;
стек-ориентированная;
эзотерическая.
Типизация:
бестиповая.
2.10 Язык Picat
Picat создан Neng-Fa Zhou и Jonathan Fruhman в 2013 году под влиянием Prolog.
Picat — язык, совмещающий в себе черты логических, функциональных и скриптовых языков.
Парадигма:
декларативная;
императивная;
логическая.
Типизация:
динамическая.
В качестве примера приведём программу Hello, World!
main =>
println("Hello, World!").
На основе представленных языков программирования можно сделать вывод, что каждый из них создан на основе какого-либо предшественника, с целью упрощения работы программиста.
Каждый из «новоиспечённых» языков представляет собой алгоритм, созданный для какой-либо конкретной области применения. Такое улучшение способствует упрощению не только самого языка, но и работы с ним, а также его изучению.
Каждый из представленных языков входит во временные границы начиная с 2009 и заканчивая 2018 годом.
ЗАКЛЮЧЕНИЕ
В ходе проведённого исследования удалось выяснить, что языки программирования нового поколения играют существенную роль в жизни современного человека.
Их актуальность различается по сферам занятости. Так, например, финансовые и корпоративные программные продукты должны выполнять сложные функции и быть высокоорганизованными, в связи с этим им необходимы следующие языки: Java, C#.
Ruby, PHP, JavaScript, Objective-C используются веб-страницами и программами, ориентированными на мультимедию и дизайн.
Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов, именно поэтому рассматриваемая тема является актуальной.
В ходе работы были изучены общие сведения о языках программирования, а также рассмотрены некоторые из языков программирования нового, пятого поколения; рассмотрены причины создания современных языков программирования и необходимось их создания.
Цель и задачи проведённого исследования достигнуты.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Ссылки
http://progopedia.ru/
https://ru.wikipedia.org/wiki/Хронология_языков_программирования
https://golang.org/
https://www.dartlang.org/guides/get-started
Литература
А. А. Тюгашев. Основы программирования. Часть 1. Санкт-Петербург 2016 г.
Язык программирования Go. Алан А. А. Донован, Брайан У. Керниган ; [пер. с англ. и ред. И. В. Красикова]. Москва [и др.]: Вильямс, 2016 г.
Swift. Основы разработки приложений под iOS и macOS. Василий Усов. Санкт-Петербург, Москва. 2018
ПРИЛОЖЕНИЕ
Таблица 1
Хронология языков программирования 2009-2018 гг.
|
Год |
Название |
Разработчик |
Предшественник(и) |
|
2009 |
Go |
|
C, Oberon, Limbo |
|
2009 |
CoffeeScript |
Джереми Ашкенас |
JavaScript, Ruby, Python |
|
2009 |
Idris |
Эдвин Брейди |
Haskell, Agda, Coq |
|
2010 |
Chapel |
Brad Chamberlain, Cray Inc. |
HPF, ZPL |
|
2010 |
RPG Open Access |
IBM |
FARGO, RPG, RPG II, RPG III, RPG 400, RPG IV (RPGLE, ILE RPG, RPG Free) |
|
2010 |
Rust |
Грэйдон Хор, Mozilla |
Alef, C++, Camlp4, Common Lisp, Erlang, Haskell, Hermes, Limbo, Napier, Napier88, Newsqueak, NIL, Sather, OCaml, Standard ML, Cyclone, Scheme |
|
2011 |
C++11 (ISO C++ 2011) |
ISO/IEC JTC1/SC22/WG21 КомитетСтандартизации C++ |
ISO C++ 2003 |
|
2011 |
Ceylon |
Gavin King, Red Hat |
Java, Scala, Smalltalk |
|
2011 |
Dart |
|
Java, JavaScript, CoffeeScript, Go |
|
2011 |
Elm |
Evan Czaplicki |
Haskell, Standard ML, OCaml, F# |
|
2011 |
Kotlin |
JetBrains |
Java, Scala, Groovy, C#, Gosu |
|
2011 |
Opa |
MLstate |
OCaml, Erlang, JavaScript |
|
2011 |
Red |
Nenad Rakocevic |
REBOL, Scala, Lua |
|
2012 |
Ada 2012 |
ARA и Ada Europe (ISO/IEC 8652:2012) |
Ada 2005, ISO/IEC 8652:1995/Amd 1:2007 |
|
2012 |
Elixir |
José Valim |
Erlang, Ruby, Clojure |
|
2012 |
Julia |
СтефанКарпински, ДжеффБезансон, ВиралШах |
Си, NumPy, Matlab, R, Scheme, Lisp, Python, Perl, Ruby |
|
2012 |
TypeScript |
Андерс Хейлсберг, Microsoft |
JavaScript |
|
2014 |
C++14 (ISO C++ 2014) |
ISO/IEC JTC1/SC22/WG21 КомитетСтандартизации C++ |
ISO C++ 2011 |
|
2014 |
Crystal |
Арье Боренвейг (Ary Borenszweig, Manas Technology Solutions) |
Ruby, C, Rust, Go, C#, Python |
|
2014 |
Hack |
БрайанО’Салливан, ДжулиенВерлаге и АлокМенгхраджани / Facebook |
PHP, C++, Java |
|
2014 |
Swift |
Apple |
C, Objective-C |
|
2015 |
Perl 6 |
Ларри Уолл |
Perl, Haskell, Python, Ruby |
|
2016 |
Ring |
Mahmoud Fayed |
Lua, Python, Ruby, C, C#, Бейсик, QML, xBase, Supernova |
|
2017 |
C++17 (ISO C++ 2017) |
ISO/IEC JTC1/SC22/WG21 КомитетСтандартизации C++ |
ISO C++ 2014 |
|
2018 |
Dart2[3] |
|
Dart |