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

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

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

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

Добавлен: 21.05.2023

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

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Как связаны HTML, CSS и JavaScript?

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

Однако HTML отлично работает с двумя другими интерфейсами: CSS  и JavaScript. Вместе они могут обеспечить богатый пользовательский интерфейс и реализовать расширенные функции.

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

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

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

Язык Lisp

(LISP, от англ. List Processing — «обработка списков») — семейство языков программирования, основанных на представлении программы системой линейных списков символов, которые притом являются основной структурой данных языка. Лисп считается вторым после Fortran старейшим высокоуровневым языком программирования.

1960 Джон Маккарти опубликовал выдающуюся статью, в которой он сделал для программирования примерно то же, что Евклид когда-то сделал для геометрии. Он показал, как имея в наличии только простые операторы и представление для функций, можно создать целый язык программирования.

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

Система типов в Lisp'е имеет динамическую структуру. Будучи функциональным языком, Lisp в своих последних версиях обладает признаками императивности, а также, имея возможности символьной обработки, делает возможным реализовать объектно-ориентированность.


Лисп является наиболее важным языком программирования, используемым в исследованиях по искусственному интеллекту и в математической лингвистике. Название языка "Лисп" происходит из "list processing" (обработка списков). Буквально английское слово "lisp" означает "лепетать", "шепелявить" и "сюсюкать". В качестве имени языка программирования искусственного интеллекта это метко, поскольку именно с помощью Лиспа вычислительные машины научились в некоторой мере лепетать на человеческом языке.   И всё же Лисп ни в каком смысле не является младенцем. Скорее он старик среди языков программирования. Лисп разработан уже в 50-х годах и является вслед за Фортраном старейшим ещё используемым языком программирования. Но в отличие от Фортрана будущее Лиспа ещё впереди.   Лисп представляет собой язык так называемого функционального программирования. Он основан на алгебре списочных структур, лямбда-исчислении и теории рекурсивных функций. Благодаря неразвитости традиционной вычислительной техники, отличающемуся от других языков программирования характеру и из-за наличия элементарных средств обработки списков Лисп долгое время являлся основным инструментом исследователей искусственного интеллекта и средством теоретического подхода к анализу программирования. Однако в 80-х годах Лисп, наконец, вышел из лабораторий и нашел применение в прикладных проблемах.   Обычно языки программирования не изобретают, а проектируют. Однако по отношению к Лиспу можно говорить об изобретении. Первоначальная версия языка, в частности, содержала множество понятий и принципов, которые сначала казались очень странными, но многие, из которых позже оказались существенным нововведением. Кроме этого, возможность добавления в Лисп в течение десятилетий многих новых черт подтвердила свойство расширяемости этого языка. Вокруг Лиспа возникла широкая культура, охватывающая многочисленные школы и разнообразные диалекты языка, различные системы и методы программирования, программные среды и Лисп-машины.   Далее мы коротко рассмотрим многочисленные свойства Лиспа и его отличия от других языков программирования.

Программирование и тестирование программы осуществляется функция за функцией, которые пошагово определяются и подвергаются тестированию. Такой подход называют пошаговым программированием. Написание, тестирование и исправление программы осуществляется внутри Лисп-системы без промежуточного использования операционной системы. Специальные операционные системы более не используются, точнее они скрыты от пользователя. Все услуги имеются в интегрированной системе программирования.   Вспомогательные средства, находящиеся в распоряжении пользователя, такие как, например, редактор, инспектор, транслятор, структурная печать и другие образуют общую интегрированную среду, язык которой нельзя чётко отличить от системных средств. Отдельные средства по своему принципу являются прозрачными, чтобы их могли использовать другие средства. Например, интерпретатор может вызвать редактор. Редактор - интерпретатор и так далее даже рекурсивно. Работа может производится часто на различных уровнях или в различных рабочих окнах. Такой способ работы особенно хорошо подходит для исследовательского программирования и быстрого построения прототипов. Лисп является одновременно как языком прикладного, так и системного программирования. Он напоминает машинный язык тем, что как данные, так и программа представлены в одинаковой форме. Язык превосходно подходит для написания интерпретаторов и трансляторов как для него самого, так и для других языков. Например, ядро интерпретатора Лиспа, написанное на самом Лиспе, составляет пару страниц красивого кода. Примерно в том же объёме уместится и ядро интерпретатора Пролога. Как известно, наиболее короткий интерпретатор Пролога, написанный на Лиспе занимает несколько десятков строк.   Традиционно Лисп-системы в основной своей части написаны на Лиспе. При программировании, например, транслятора, есть возможность для оптимизации объектного кода использовать сложные преобразования и методы искусственного интеллекта. Лисп можно в хорошем смысле считать языком машинного и системного программирования высокого уровня. И это особенно характерно для Лисп-машин, которые вплоть до уровня аппаратуры спроектированы для Лиспа и системное программное обеспечение которых написано на Лиспе.


Язык PHP

PHP Hypertext Preprocessor (изначально Personal Home Page Tools) рефлексивный язык программирования, разработанный в качестве инструмента для создания динамических веб-страниц и работы с базами данных — один из лидирующих языков современной веб-разработки. Его отцом считается датский программист Расмус Лердорф, который в 1994 году создал набор скриптов на Perl — ту самую «персональную домашнюю страницу», которая легла в основу PHP.

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

Единственное применение — это веб-разработка. На PHP невозможно сделать десктопные приложения, он не используется в мобильной разработке — только веб. Но сегодня эта область огромна. Даже некоторые десктопные приложения уходят в веб — тот же Microsoft Office имеет облачный сервис. Ранее считалось, что PHP не подходит для больших высоконагруженных проектов, но опыт Facebook доказывает обратное.

Языки программирования бывают:

1) со статической типизацией;

2) с динамической типизацией.

В первом случае тип переменной определен жестко и заранее. Если это число, программист напишет тип int. Если строка — string. Во втором случае переменная может быть одновременно числом, строкой, массивом, объектом — чем угодно. Одной переменной можно присвоить число, затем массив, объект — и язык программирования это позволит. PHP относится ко второй группе.

И основное преимущество языка php в том, что он именно ориентирован на работу с веб серверами. В нем есть очень много возможностей которые позволяют взаимодействовать с серверными базами данных, такими как mysql и так далее… Работать с e-mail, с почтой, работать с файловой системой на web-сервере. Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь даже может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта. Сценарии на языке PHP могут исполняться на сервере в виде отдельных файлов, а могут интегрироваться в html страницы. PHP способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML. PHP - кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других. Для большинства серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора. PHP поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др. Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности. Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования. Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP. Подробнее об этой возможность смотрите здесь.


Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.

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

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

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

Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования, по крайней мере, в ближайшее время.

Язык Haskell

Функциональный декларативный язык программирования, первая версия которого была стандартизирована в 1990 году, назван в честь математика Хаскелла Карри. Язык Haskell известен благодаря синтаксису, в сравнении с которым Пёрл выглядит псевдокодом, а также необходимостью глубокого понимания лямбда-исчисления, замыканий, теории графов, теории категорий, сопромата, анатомии мозга и прочего матана даже для вывода на экран строки «Hello, World!»

Специфика Haskell К отличительным особенностям Haskell относятся: статическая система типов; во время компиляции выполняется проверка всех выражений на совпадение типов и, в случае нарушения, преобразование заканчивается ошибкой; в очевидных случаях компилятор сам обозначает типы переменных; ленивость; функции соединяются в цепочки по мере востребованности; повторяющиеся фрагменты кода можно именовать и вызывать с помощью сокращений; чистая функциональность; функции в Haskell более строго определены, чем в других языках программирования; они не могут изменять свои аргументы, внутри них не может происходить ничего, что бы влияло на внешние по отношению к ним переменные; параллельные вычисления; потоки, выполняющие алгоритмы одновременно в рамках одного процесса, создаются автоматически на уровне компилятора. Как и у других современных языков программирования, у Haskell есть репозитории, из которых можно загружать библиотеки, расширяющие базовые возможности языка. Кроме того, инструментарий для разработки на Haskell оснащен собственной системой контроля версий Darcs и упаковщиком Cabal. Несмотря на некоторую экзотичность и сравнительно невысокую популярность, Haskell является языком общего применения и даже располагает собственными фреймворками для веб-разработки (Yesod, Happstack, Snap). Недостатки Haskell: ленивость затрудняет выявление причин утечек памяти; имеет место некоторая сложность конфигурирования программ, написанных на Haskell; сравнительно невелико количество пишущих на нем программистов (трудно набрать в проект достаточное количество разработчиков); экспериментальный и исследовательский характер Haskell (он считается флагманом среди функциональных языков программирования) обуславливает появление в нем время от времени непредсказуемых тенденций.


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

Язык Clojure

Используется такими проектами, как NASA CMR, Cisco Threat Grid, CircleCI, Jepsen, стартапами и некоторыми крупными компаниями. В Positive Technologies мы решили попробовать применить Clojure как платформу для базовой автоматизации процессов управления разработкой программного обеспечения, но что-то пошло не так: проект по автоматизации стал большим и опенсорсным.

История создания:

В 2007 году разработчик Рич Хики представил первую публичную версию языка друзьям из сообщества Common Lisp. Дальнейшую популярность язык приобретал через открытые сообщества в интернете, а также с помощью статей выступлений самого Хики.

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

«Имя должно было быть уникальным. Я хотел включить в имя C (C#), L (Lisp) и J (Java). Как только я придумал Clojure, с учетом того, что это каламбур на «closure», что есть доступный домен и огромное пустое google-пространство, то это и было простое решение», – пояснил выбор названия для языка программирования разработчик.

Функциональность Clojure:

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