|
p:abstract
|
-
De programmeertaal Scheme is een functionele programmeertaal. Het is een dialect van de programmeertaal Lisp. Guy L. Steele en Gerald Jay Sussman ontwikkelden het in de jaren 1970 en presenteerden het aan de academische wereld in de zogenaamde 'Lambda Papers'. De taal heette oorspronkelijk "Schemer", in de traditie van talen als Planner en Conniver maar werd ingekort door de beperkingen van het ITS besturingssysteem dat geen bestandsnamen toeliet met meer dan 6 karakters.
De filosofie achter Scheme is minimalisme. Het doel is niet om uitbreiding op uitbreiding te stapelen, maar om zwakheden en beperkingen te verwijderen die uitbreidingen nodig schijnen te maken. Daarom heeft Scheme zo min mogelijk primitieven waarmee de rest geïmplementeerd kan worden. Het belangrijkste mechanisme voor control flow is staartrecursie.
Scheme was de eerste variant van Lisp die uitsluitend lexicaal variabelenbereik (in tegenstelling tot dynamisch variabelenbereik) gebruikte. Net zoals Lisp, gebruikt Scheme garbage collection om geheugenplaatsen met ongebruikte data te hergebruiken. De taal gebruikt lijsten als belangrijke datastructuur, maar kent daarnaast vele andere. Door het minimalisme van de Scheme specificatie, bestaat er geen standaard syntax voor het maken van structuren met benoemde velden, of ondersteuning voor object-georiënteerd programmeren, maar bijna elke implementatie ondersteunt deze uitbreidingen.
Kenmerkend aan Scheme is dat het gebruik maakt van prefix notatie van bewerkingen in plaats van het meestgebruikte infix. Bijvoorbeeld 3+5 is een infix notatie voor de optelling (de operator + bevindt zich tussen de 3 en de 5) terwijl + 3 5 de prefix notatie is vermits de operator (+) zich tussen de twee operanden bevindt ( 3 en 5)."
(nl)
-
Die Programmiersprache Scheme ist ein LISP-Dialekt.
Sie unterstützt neben der funktionalen Programmierung auch eine Reihe von anderen Paradigmen – wie z. B. die imperative Programmierung. Scheme liegt das Prinzip zugrunde, dass eine Programmiersprache nicht dadurch beschreibungsmächtig wird, dass man Feature über Feature häuft, sondern dadurch, dass man unnötige Einschränkungen entfernt. Beispielsweise gibt es im Scheme-Standard keine Hilfsmittel zur objektorientierten Programmierung, es ist aber dank Makros und λ-Ausdrücken sehr einfach, sich solche in der Sprache zu programmieren: Scheme ist eine programmierbare Programmiersprache, die von den Programmierern bei Bedarf sehr flexibel erweitert werden kann.
Entwickelt wurde Scheme am Massachusetts Institute of Technology, wo auch die formale Spezifikation zur Verfügung steht, der so genannte Revised Report. Die derzeit aktuelle Spezifikation R6RS.
Drei wesentliche Merkmale unterscheiden Scheme von LISP. Zum einen gibt es in Scheme die Funktion call-with-current-continuation, die es erlaubt, die gegenwärtige Continuation des Programms anzusprechen oder an eine Variable zu binden. Damit ist es möglich, durch Aufrufen der in jener Variablen gespeicherten Continuation später im Programm an die Stelle dieser Continuation zurück zu springen. Zum anderen schreibt der Scheme-Standard proper tail recursion vor; das bedeutet, dass Prozeduraufrufe, die in einer endrekursiven Position stattfinden, keinen Speicherplatz auf dem Stack verbrauchen dürfen. Drittens sind Makros in Scheme im Gegensatz zu LISP "hygienisch", was bedeutet, dass ihre Verwendung nicht die lexikalische Struktur der die Verwendung enthaltenden Ausdrücke verletzt, so dass einerseits die innerhalb eines Makros möglicherweise eingeführten Bindungen von Bezeichnern niemals die bereits in der lexikalischen Umgebung der Makroverwendung definierten Bindungen dieser Bezeichner überdecken und andererseits die innerhalb eines Makros verwendeten freien Bezeichner immer in der lexikalischen Umgebung der Makrodefinition aufgelöst werden statt in der lexikalischen Umgebung der Makroverwendung"
(de)
-
Lo Scheme è un linguaggio di programmazione funzionale, un dialetto del Lisp di cui mantiene tutte le caratteristiche, che è stato sviluppato negli anni '70 da Guy L. Steele e Gerald Jay Sussman, che lo introdussero nel mondo accademico con una serie di articoli noti come le Lambda Papers e nel libro Structure and Interpretation of Computer Programs, usato per decenni come testo in alcuni esami di Scienze dell'Informazione.
In ambiente Linux, il desktop manager GNOME implementa l'interprete Scheme Guile."
(it)
-
Scheme (prononcer « skim' ») est un langage de programmation dérivé du langage fonctionnel Lisp, créé dans les années 1970 au Massachusetts Institute of Technology (MIT) par Gerald Jay Sussman et Guy L. Steele.
Le but des créateurs du langage était d'épurer le langage Lisp en conservant les aspects essentiels, la flexibilité et la puissance expressive. Scheme a donc une syntaxe extrêmement simple, avec un nombre très limité de mots-clé. Comme en Lisp, la notation préfixée permet de s'affranchir des opérateurs de précédence.
De plus, la puissance des macros de Scheme lui permet de s'adapter à n'importe quel problème, notamment de le rendre orienté objet et donc multi-paradigme.
La spécification de Scheme précise que tous les produits doivent optimiser le cas de la récursion terminale.
Les types de données de base de Scheme sont les booléens, les nombres, qui peuvent être entiers de taille indéfinie, rationnels ou complexes, les caractères ou les symboles, qui sont des variables.
À ceux-là s'ajoutent des types de données composites suivants : chaînes de caractères, vecteurs, paires orientées, listes, listes associatives, tables de hachage et un type particulier générique, la S-expression, dont tous les autres types dérivent, rendant possible la métaprogrammation, c'est-à-dire la possibilité d'étendre le langage avec de nouveaux opérateurs spéciaux."
(fr)
-
Scheme er et funksjonelt programmeringsspråk som er en dialekt av Lisp. Språket ble utviklet av Guy L. Steele og Gerald Jay Sussman på 1970-tallet. Syntaksen er lett gjenkjennelig ved at den i likhet med andre Lisp-dialekter er preget av paranteser og prefiksnotasjon.
Scheme brukes i hovedsak innenfor forskning og det akademiske, og da spesielt innenfor forskning på AI (kunstig intelligens)."
(no)
-
Scheme es un lenguaje de programación . Es un lenguaje funcional (si bien impuro, ya que, por ejemplo, sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele.
La filosofía de Scheme es decididamente minimalista. Su objetivo no es acumular un gran número de funcionalidades, sino evitar las debilidades y restricciones que hacen necesaria su adición. Así, Scheme proporciona el mínimo número posible de nociones primitivas, construyendo todo lo demás a partir de un reducido número de abstracciones. Por ejemplo, el mecanismo principal para el control de flujo son las llamadas recursivas finales.
Scheme fue el primer dialecto de Lisp que usó ámbito estático o léxico (en lugar de dinámico) de forma exclusiva. También fue uno de los primeros lenguajes de programación con continuaciones explícitas. Scheme ofrece también gestión automática de memoria (recolección de basura).
Las listas son la estructura de datos básica del lenguaje, que también ofrece arrays entre sus tipos predefinidos. Debido a su especificación minimalista, no hay sintaxis explícita para crear registros o estructuras, o para programación orientada a objetos, pero muchas implementaciones ofrecen dichas funcionalidades.
Scheme se llamaba originalmente "Schemer", siguiendo la tradición de los lenguajes Planner y Conniver. Su nombre actual es debido a que sus autores usaban el sistema operativo ITS, que limitaba la longitud de los nombres de fichero a 6 caracteres."
(es)
-
Scheme is a multi-paradigm programming language. It is one of the two main dialects of Lisp and supports a number of programming paradigms but is best known for its support of functional programming. It was developed by Guy L. Steele and Gerald Jay Sussman in the 1970s. Scheme was introduced to the academic world via a series of papers now referred to as Sussman and Steele's Lambda Papers. There are two standards that define the Scheme language: the official IEEE standard, and a de facto standard called the Revisedn Report on the Algorithmic Language Scheme, nearly always abbreviated RnRS, where n is the number of the revision. The most widely implemented standard is R5RS, and on August 28th, 2007, R6RS, the next major revision of the Scheme language was ratified, with about 2/3rd of the voters in favor of R6RS.
Scheme's philosophy is minimalist. Scheme provides as few primitive notions as possible, and, where practical, lets everything else be provided by programming libraries.
Scheme was the first dialect of Lisp to choose static (a.k.a. lexical) over dynamic variable scope. It was also one of the first programming languages to support first-class continuations."
(en)
-
Scheme on funktionaalinen ohjelmointikieli ja eräs Lisp-murteista. Schemen kehittivät Guy L. Steele ja Gerald Jay Sussman 1970-luvulla. Schemen alkuperäinen nimi oli "Schemer", mutta käytetty ITS-käyttöjärjelmä rajoitti tiedostojen nimet kuuteen merkkiin, ja lyhyempi nimi jäi.
Scheme keskittyy minimaalisuuteen. Kielessä itsessään on mahdollisimman vähän toimintoja ja kaikki muu jätetään kirjastoille. Tätä kuvastaa hyvin se, että Schemen spesifikaatio, Revised5 th Report on the Algorithmic Language Scheme (R5RS), on noin 50 sivua verrattuna Common Lisp -spesifikaatioon, joka on noin 1300 sivua."
(fi)
-
Scheme to funkcyjny język programowania, dialekt (wariant) LISP-a, którego główną ideą jest minimalizm. Oznacza to, że sam język zawiera jedynie podstawowe mechanizmy, a na ich bazie, już z użyciem Scheme, tworzone są bardziej zaawansowane rozwiązania. Scheme nie jest czystym funkcjonalnym językiem programowania, co oznacza, że dopuszczalne są efekty uboczne obliczeń. Scheme umożliwia również tworzenie programów w stylu proceduralnym i obiektowym. Jest to język o dynamicznym systemie typów. Zarządzanie pamięcią jest w pełni automatyczne."
(pl)
-
Scheme är en dialekt av programmeringspråket Lisp, uppfunnet av Guy Lewis Steele Jr. och Gerald Jay Sussman på MIT och dök upp någon gång på 1970-talet. Det är en av de två största dialekterna tillsammans med CommonLisp. Filosofin bakom språket är minimalistisk, det finns väldigt begränsade programbibliotek utan användaren får själv skapa de flesta funktioner från grunden. Scheme används i undervisningssyfte på flera universitet i Sverige och runt om i världen. Många kurser använder sig av Sussmans bok Structure and Interpretation of Computer Programs."
(sv)
-
Scheme é uma linguagem de programação multi-paradigma que suporta programação funcional e procedural. Foi criada por Guy L. Steele e Gerald Jay Sussman nos anos 1970 a partir da linguagem Lisp com o intuito de estudar a teoria dos atores de Carl Hewitt. Existem dois padrões que definem a linguagem Scheme: o padrão oficial IEEE e um padrão popular chamado "Revisedn Report on the Algorithmic Language Scheme", abreviado como RnRS, onde n é o número de revisões.
Scheme adota uma filosofia minimalista, assim sendo, provê o mínimo de noções possíveis, e, na prática, qualquer outra noção pode ser adicionada via bibliotecas, como todos os dialetos do Lisp, possui pouca sintaxe comparado à maioria das outras linguagens. Devido à sua sintaxe completamete aninhada, não existem regras de precedência de operadores e sua notação parentizada é usada para todas as chamadas de função, desta forma não há ambigüidades como as que são encontradas nas linguagens de notação infixa."
(pt)
-
Scheme — это функциональный язык программирования, один из двух наиболее популярных в наши дни диалектов языка Лисп (другой популярный диалект — это Common Lisp). Aвторы языка Scheme — Гай Стил (Guy L. Steele) и Джеральд Сассмен (Gerald Jay Sussman) из Массачусетского технологического института — создали его в середине 1970-х годов."
(ru)
-
Scheme(スキーム)は、ガイ・スティール(Guy Lewis Steele Jr.)とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)によって開発された関数型プログラミング言語であり、LISPの方言の1つ。他のLISP言語と比べてもシンプルで強力であることが特徴である。
Schemeは、実行時のスナップショットを抽象化した継続(コンティニュエーション)、静的スコープ、末尾最適化を言語として保証するなどの機能を持つ。
Schemeが出てくるまでの他のLISP方言では変数束縛が実行履歴を元に決定される動的スコープを採用することが多かったが、Schemeでは変数の意味がコード上のネスティングで定まるという静的スコープを持つ。静的スコープはCommon Lispに採用された。Schemeは、アメリカでは大学でのプログラミング教育に広く使われている。
MITでプログラミング教育に使われている処理系実装MIT Schemeは、多くのプラットフォームで動作する。
サスマンらによる『計算機プログラムの構造と解釈 第二版』(ISBN 489471163X)は、演習や説明にSchemeを使ったコンピュータサイエンスの優れた教科書である。
言語仕様は、文書The Revised5 Report on the Algorithmic Language Scheme(R5RSと呼ばれる)で定められる。LISP系言語はSchemeとCommon Lispを二大潮流とするが、提案された機能を原則全て導入するCommon Lispに対して、メンバーの全員一致を原則とするSchemeという特徴を持っている。
なお、2007年9月に新仕様R6RSが成立した。4部構成となり、R5RSに比べおよそ3倍の文章量となった。今までは小さな言語仕様に対してのこだわりが見られたが、Unicodeサポート等の実用的な言語として必要な要素が盛り込まれている点が特徴的である。しかし、多くの機能が盛り込まれたにもかかわらず細部の練りこみが不十分であるといった批判もあり、非公式にR5RSを拡張する形でERR5RS(Extended R5RS Scheme)という規格を検討するコミュニティも現れている。"
(ja)
-
Scheme,一種多範型的程式語言,它是兩種lisp主要的方言之一。它是由Guy L. Steele跟Gerald Jay Sussman在1970年代發展出來。現在的標準是R5RS,並且R6RS仍然在發展之中。Scheme也是第一個使用靜態而非動態變數區域的Lisp方言。
Scheme的哲学是:设计计算机语言不应该进行功能(feature)的堆砌,而应该尽可能减少弱点(weakness)和限制(restriction),使剩下的功能显得必要。"
(zh)
|
|
rdfs:comment
|
-
De programmeertaal Scheme is een functionele programmeertaal. Het is een dialect van de programmeertaal Lisp. Guy L. Steele en Gerald Jay Sussman ontwikkelden het in de jaren 1970 en presenteerden het aan de academische wereld in de zogenaamde 'Lambda Papers'. De taal heette oorspronkelijk "Schemer", in de traditie van talen als Planner en Conniver maar werd ingekort door de beperkingen van het ITS besturingssysteem dat geen bestandsnamen toeliet met meer dan 6 karakters."
(nl)
-
Die Programmiersprache Scheme ist ein LISP-Dialekt. Sie unterstützt neben der funktionalen Programmierung auch eine Reihe von anderen Paradigmen – wie z. B. die imperative Programmierung. Scheme liegt das Prinzip zugrunde, dass eine Programmiersprache nicht dadurch beschreibungsmächtig wird, dass man Feature über Feature häuft, sondern dadurch, dass man unnötige Einschränkungen entfernt."
(de)
-
Lo Scheme è un linguaggio di programmazione funzionale, un dialetto del Lisp di cui mantiene tutte le caratteristiche, che è stato sviluppato negli anni '70 da Guy L. Steele e Gerald Jay Sussman, che lo introdussero nel mondo accademico con una serie di articoli noti come le Lambda Papers e nel libro Structure and Interpretation of Computer Programs, usato per decenni come testo in alcuni esami di Scienze dell'Informazione."
(it)
-
Scheme (prononcer « skim' ») est un langage de programmation dérivé du langage fonctionnel Lisp, créé dans les années 1970 au Massachusetts Institute of Technology (MIT) par Gerald Jay Sussman et Guy L. Steele."
(fr)
-
Scheme er et funksjonelt programmeringsspråk som er en dialekt av Lisp. Språket ble utviklet av Guy L. Steele og Gerald Jay Sussman på 1970-tallet. Syntaksen er lett gjenkjennelig ved at den i likhet med andre Lisp-dialekter er preget av paranteser og prefiksnotasjon."
(no)
-
Scheme es un lenguaje de programación . Es un lenguaje funcional (si bien impuro, ya que, por ejemplo, sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele."
(es)
-
Scheme is a multi-paradigm programming language. It is one of the two main dialects of Lisp and supports a number of programming paradigms but is best known for its support of functional programming. It was developed by Guy L. Steele and Gerald Jay Sussman in the 1970s. Scheme was introduced to the academic world via a series of papers now referred to as Sussman and Steele's Lambda Papers.
(en)
-
Scheme on funktionaalinen ohjelmointikieli ja eräs Lisp-murteista. Schemen kehittivät Guy L. Steele ja Gerald Jay Sussman 1970-luvulla. Schemen alkuperäinen nimi oli "Schemer", mutta käytetty ITS-käyttöjärjelmä rajoitti tiedostojen nimet kuuteen merkkiin, ja lyhyempi nimi jäi."
(fi)
-
Scheme to funkcyjny język programowania, dialekt (wariant) LISP-a, którego główną ideą jest minimalizm. Oznacza to, że sam język zawiera jedynie podstawowe mechanizmy, a na ich bazie, już z użyciem Scheme, tworzone są bardziej zaawansowane rozwiązania. Scheme nie jest czystym funkcjonalnym językiem programowania, co oznacza, że dopuszczalne są efekty uboczne obliczeń. Scheme umożliwia również tworzenie programów w stylu proceduralnym i obiektowym."
(pl)
-
Scheme är en dialekt av programmeringspråket Lisp, uppfunnet av Guy Lewis Steele Jr. och Gerald Jay Sussman på MIT och dök upp någon gång på 1970-talet. Det är en av de två största dialekterna tillsammans med CommonLisp. Filosofin bakom språket är minimalistisk, det finns väldigt begränsade programbibliotek utan användaren får själv skapa de flesta funktioner från grunden. Scheme används i undervisningssyfte på flera universitet i Sverige och runt om i världen."
(sv)
-
Scheme é uma linguagem de programação multi-paradigma que suporta programação funcional e procedural. Foi criada por Guy L. Steele e Gerald Jay Sussman nos anos 1970 a partir da linguagem Lisp com o intuito de estudar a teoria dos atores de Carl Hewitt. Existem dois padrões que definem a linguagem Scheme: o padrão oficial IEEE e um padrão popular chamado "Revisedn Report on the Algorithmic Language Scheme", abreviado como RnRS, onde n é o número de revisões."
(pt)
-
Scheme — это функциональный язык программирования, один из двух наиболее популярных в наши дни диалектов языка Лисп (другой популярный диалект — это Common Lisp). Aвторы языка Scheme — Гай Стил (Guy L."
(ru)
-
Scheme(スキーム)は、ガイ・スティール(Guy Lewis Steele Jr.)とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)によって開発された関数型プログラミング言語であり、LISPの方言の1つ。他のLISP言語と比べてもシンプルで強力であることが特徴である。"
(ja)
-
Scheme,一種多範型的程式語言,它是兩種lisp主要的方言之一。它是由Guy L. Steele跟Gerald Jay Sussman在1970年代發展出來。現在的標準是R5RS,並且R6RS仍然在發展之中。Scheme也是第一個使用靜態而非動態變數區域的Lisp方言。"
(zh)
|