Файл: Современные языки программирования (Понятие. Сущность).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.04.2023

Просмотров: 272

Скачиваний: 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

Google

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

Google

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]

Google

Dart