русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Scheme мультипарадигмный язык

Scheme - мультипарадигмный язык, поддерживает функциональную и процедурную парадигмы программирования. Словарь языка можно расширять средствами самого языка. Существуют расширения, которые добавляют поддержку объектно-ориентированного, декларативной и других парадигм программирования. Является диалектом языка программирования Лисп.

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

Первое описание Scheme написано в 1975 году. Творцами языка является Гай Стил (англ. Guy L. Steele) и Джеральд Сассмен (англ. Gerald Jay Sussman) с Массачусетского технологического института. В 1981 и 1982 годах начались три различных проекта по использованию Scheme для учебного процесса в университетах США.

Язык программирования Scheme определяется двумя стандартами: стандартом де-юре в редакции IEEE, и стандартом де-факто. Текущая версия описание стандарта де-факто носит название «Revised 5 Report on the Algorithmic Language Scheme». 28 августа, 2007 года была утверждена следующая редакция: R 6 RS.
Основное внимание, при создании диалекта, было уделено элегантности и концептуальной завершенности языка. Как следствие, полная спецификация языка программирования Scheme уместилась в 50 страниц, в то время как спецификация Common Lisp имеет размер 1300 страниц.

Краткое описание

Как и в Алгол, области видимости в Scheme статические, каждое использование переменной соответствует лексически видимому значению этой переменной.

Типы ассоциируются со значениями (объектами), а не с переменными. Иными словами, Scheme - язык программирования с динамической типизацией. Однако, существуют диалекты Scheme со статической типизацией.

Все объекты, которые создаются во время выполнения программы, включая процедуры и продолжения, существуют до ее завершения. Ни один из объектов не уничтожается. Однако, интерпретаторам и компиляторам Scheme разрешается освобождать место, занятое объектом в случае, если они могут доказать что этот объект в программе больше не используется. Эту задачу освобождения места в памяти от неиспользуемых объектов выполняет уборщик мусора.
Процедуры в Scheme являются полноценными объектами. Процедуры можно создавать во время выполнения программы, сохранять в структурах данных, возвращать как результат работы других процедур, и так далее.

Одной из отличительных особенностей Scheme является то, что продолжения также имеют статус обычных объектов. Продолжения полезны для реализации многих сложных конструкций управления, включая нелокальные выходы (non-local exits), обратное выполнение (backtracking), и копрограммы(coroutines).

Аргументы всегда передаются в процедуры по значению. Это значит, что все значения аргументов вычисляются до того, как будет передано управление в порядке, несмотря на то, используются ли эти аргументы во время выполнения процедуры. Это отличается от семантики ленивого вычисления языка программирования Haskell, или семантики вызова по имени Algol 60, в которой значение выражения аргумента вычисляется только в случае использования в процедуре.

Модель арифметики Scheme разрабатывалась таким образом, чтобы оставаться как можно более независимой от представления чисел в компьютере. В Scheme, каждое целое является рациональным числом, каждое рациональное является действительным, а каждое действительное - комплексное. Поэтому, разница между арифметикой действительных и комплексных чисел, которая присутствует в других языках программирования, для Scheme не возникает. Вместо этого различается точная арифметика (которая соответствует математическим идеалам), и приближена (основанная на аппроксимации). Как и в Common Lisp, точная арифметика не ограничивается операциями с целыми числами.

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

Интерпретаторы и компиляторы

Для языка программирования Scheme существует большое количество интерпретаторов и компиляторов. Некоторые интерпретаторы используются в других программах для написания макросов и расширения функциональности (например, в графическом редакторе GIMP используется интерпретатор Guile). Для полного перечня, смотрите соответствующую страницу.

Средства разработки

Для Scheme, также существует большое количество вспомогательных средств разработки, интегрированных сред . К интегрированным средам принадлежит Dr. Scheme. Для GNU Emacs и XEmacs существует специальный основной режим: scheme-mode.

 

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

Оглавление: Компьютерная графика и информация в компьютерной сфере


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.