Создан заказ №1724899
5 февраля 2017
Анализ развития парадигм языков программирования на примере языка SCALA
Как заказчик описал требования к работе:
Магистерская дипломная работа
1. Введение
2. Основная часть
2.1. Из чего вырос (Сравнение с PHP и Haskel c примерами кодов)
2.2. Сам Scala (глубокое описание функции и особенностей)
3. Заключение
Фрагмент выполненной работы:
Введение
На сегодняшний день существует достаточно большое количество языков программирования, различной реализации. Какие-то из них являются классическими и до сих пор не выходят из моды потребительских нужд. Какие-то являются новыми авангардистами не способными обрести свою стойкую аудиторию и вынужденные уйти мимо истории незамеченными и померкнуть в руинах нереализованных идей.
Также стоит заметить, что существуют некие устои в определении парадигм программирования, которые уже были сформированы с началом зарождения самого программирования в современном его понимании. (работа была выполнена специалистами Автор 24) И только эти устоит, являются, по сути, константой и не модифицируются уже много лет, так как содержат всеобъемлющую дескрипцию всех возможных моментов, которых возможно коснется программист, и все иные попытки описания конкретизирующих догматов касаемо парадигм, являются столь несущественными что не находят отклика в современном мире.
Существующие языки программирования в различной вариации комбинируют в себе парадигмы программирования. И только факт наличия нескольких парадигм (по сравнению с монопарадигменностью) является залогом успеха новоиспеченного языка, но этот залог настолько ничтожен, что некоторые языки не успевают дожить до релиза. Во многом эта смесь определяется удачной комбинацией наиболее востребованных парадигм.
Со временем в среде программистов сформировались некие негласные рейтинги парадигм. Как не трудно увидеть из нынешней тенденции направлений развития уже существующих языков и создания новых, наибольшим спросом пользуются функциональная и объектно-ориентированная парадигмы программирования (а также в некоторых случаях препарированная императивностью).
Одним из таких языков является Scala. Несомненно, его успех во многом был определен исполнением под Java Virtual Machine. Но не стоит забывать о том, что существуют и другие менее популярные языки под эту виртуальную машину. И факт преемства идеи и различного рода «фич» языком Java из Scala в то время как Java начал падать в рейтингах, а его собрат Scala расти, с учетом того что Java является популярнейшим языком программирования (по некоторым рейтингам Java действительно является самым популярным языком, однако сделаем скидку на ангажирование интересов и примем Java за очень популярный язык), говорит о том что язык Scala привнес в застоявшуюся (и устоявшуюся тоже) среду значительные и потрясающие изменения.
Однако стоит заметить, что некоторые значимые личности в среде программирования характеризуют язык Scala академическим, что, несомненно, не делает ему чести.
Но почему так происходит?
Неужели они видят то чего не видят рядовые программисты?
Неужели рыночная жизнь настолько затмила здравый смысл, что критика этого языка, который заставил один из популярнейших языков (Java) преобразится, становится неуместной в сравнении с тем как он набирает обороты своей популярности?
На эти вопросы невозможно ответить однозначно, но есть возможность объективной оценки, путем всестороннего исследования, как виновника такового явления, так и его самого.
В данной работе будет рассмотрен язык программирования Scala. Будет в более подробной форме произведено сравнение с Java. А также подвергнутся сравнению некоторые характеристики языков программирования в сравнении со Scala. И будет рассмотрен не менее важный вопрос сравнения скорости исполнения кода с некоторыми другими языками.
1 История и становление Scala
Мартин Одерски начал разработку Scala в начале 2000-х в Лаборатории методов программирования EPFL(Федеральная политехническая школа Лозанны — высшее учебное заведение в Лозанне, Швейцария). Также он ранее занимался разработкой Generic Java и компилятора Java фирмы Sun[1].
Язык был создан в 2001—2004 годах. Этот язык стал промежуточным результатом исследований, направленных на разработку улучшенной языковой поддержки компонентного программного обеспечения.
Релиз Scala появился в 2003 году, однако он был только внутрипроектным. Позже язык был выпущен для общего пользования на платформе JVM в январе 2004 года и на платформе .NET в июне 2004 года (с 2012 года эта платформа не поддерживается). Scala 2.0 вышел в 2006 году. В 2016 году создан LLVM-компилятор (Scala Native)[1].
Его компиляторы и библиотеки распространяются под лицензией BSD, то есть являются свободным программным обеспечением, одобренным OSI, совместимым с GPL и DFSG. Данная лицензия не является копилефтной (что, несомненно, является бесспорным преимуществом), так же есть возможность линковки с кодом под другими лицензиями[1].
Основа разработки языка была препарирована двумя идеями[2]:
Язык программирования компонентного ПО должен быть масштабируемым, то есть должна быть возможность с помощью одних и тех же концепций описать как малые, так и большие части. В связи с этим, внимание было сконцентрировано на механизмах абстракции, композиции и декомпозиции взамен введения большого количества примитивов, которые могут быть полезными только на каком-то одном уровне масштабирования.
Масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование. Некоторые из технических новшеств Scala — это концепции, представляющие собой симбиоз этих парадигм программирования. В статически типизированных языках, к которым относится Scala, эти парадигмы до сих пор были почти полностью дифференцированы.
Можно сказать, что в некотором смысле Scala – это продолжение работы Pizza. Как и Pizza, Scala компилируется под Java VM, превнося функции высшего порядка, generic-и и сопоставление с образцом, конструкции, которые исходно были созданы в сообществе функционального программирования. В то время как Pizza обратно совместима с Java, цель Scala – всего лишь возможность взаимодействия, таким образом, у нее больше степеней свободы в плане дизайна. Кроме того, возможность компиляции в JavaScript позволяет разрабатывать веб-приложения на Scala[2].
Scala объединяет три вещи[1]:
статическую типизацию
объектно-ориентированный
функциональный подход.
На дизайн Scala оказали влияние многие языки и исследовательские работы[2]:
Scala впитала значительное число концепций и синтаксических соглашений Java и C#.
Способ выражения свойств заимствован из Sather.
Из Smalltalk взята концепция унифицированной объектной модели.
Из Beta пришла идея, что все, включая классы, должно допускать вложенность.
Дизайн mixin-ов в Scala восходит к объектно-ориентированным линейным mixin-ам, но определяет mixin-композицию симметрично, похоже на mixin-модули или trait-ы.
Абстрактные типы в Scala очень похожи на абстрактные типы сигнатур в SML и OCaml, обобщенные в контексте полноценных компонентов.
For-конструкторы списков (for comprehensions) основаны на монадных включениях Haskell, однако их синтаксис больше напоминает XQuery. Их можно рассматривать как объектно-ориентированную версию параметризованных классов типов.
Кроме того, Scala принял особенности функциональных языков Scheme, Standard ML и HaskellПосмотреть предложения по расчету стоимости
Заказчик
заплатил
заплатил
3000 ₽
Заказчик оплатил в рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
12 февраля 2017
Заказ завершен, заказчик получил финальный файл с работой
5
Анализ развития парадигм языков программирования на примере языка SCALA.docx
2020-01-20 21:09
Последний отзыв студента о бирже Автор24
Общая оценка
4.4
Положительно
Благодаря работе автора защитил ВКР на отлично. Работа была выполнена раньше срока, максимально качественно и с высоким процентом уникальности. Категорически рекомендую :)