Язык описания атрибутных грамматик

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

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

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Фрагмент текста работы

имеет структуры в смысле операционной или денотационной семантики. Выполнение функции при одних и тех же параметрах всегда приводит к одному и тому же результату. Это явление называется про­зрачностью ссылок(referential transparency). Она делает семантику чисто функциональ­ных языков программирования намного более простой, чем семантика императивных язы­ков и функциональных языков, обладающих императивными свойствами.

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

Императивные языки обычно предусматривают лишь ограниченную поддержку функционального программирования. Не­достаток использования императивного языка для функционального программирования в том, что функции в императивных языках имеют ограничения, наложенные на типы значений, которые они возвращают. В таких языках, как FORTRAN и Pascal, функ­ции возвращают только переменные скалярного типа. Еще более важным является то, что они не могут возвращать функции. Такие ограничения сужают круг функциональных форм, поддерживаемых императивным языком. Другая серьезная проблема, относящаяся к функциям в императивных языках, заключается в том, что функции могут иметь по­бочные эффекты.

Применение функциональных языков

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

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

Язык Scheme широко применяется для обучения функциональному программирова­нию. Он также используется в некоторых университетах в рамках вводных курсов по программированию. Функционирование языков ML и Haskell большей частью ограничи­вается исследовательскими лабораториями и университетами.

Сравнение функциональных и императивных языков

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

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

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

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.