PLT Scheme

PLT Scheme

Infobox Software
name = PLT Scheme



caption =
developer = PLT
latest_release_version = 4.1
latest_release_date = Release date and age|2008|08|12
latest_preview_version =
latest_preview_date =
operating_system = Cross-platform
platform = x86, PPC, SPARC
genre = Programming language
license = GNU Lesser General Public License (LGPL)
website = [http://www.plt-scheme.org http://www.plt-scheme.org]
standard = R6RS (mostly)

PLT Scheme is an innovative programming language that builds on a rich academic and practical tradition.

* DrScheme is the PLT Scheme program development environment.
* MzScheme is the lightweight, embeddable, scripting-friendly PLT Scheme runtime system.
* TeachScheme! is a PLT project to turn Computing and Programming into an indispensable part of the liberal arts curriculum.
* PLaneT [http://planet.plt-scheme.org/] is PLT's centralized package distribution system. Visit for a list of user-contributed packages."PLT" is the group of people who produce PLT Scheme.

History

Matthias Felleisen founded PLT in the mid 1990s, first as a research group, soon after as a project dedicated to the production of pedagogic materials for novice programmers (lectures, exercises/projects, software). In January 1995, the group decided to develop a pedagogic programming environment. Matthew Flatt cobbled together MrEd (a pun and a tease) from libscheme, wxWindows, and a number of other free systems. Over the year, Robby Findler, Shriram Krishnamurthi, Cormac Flanagan, and some others produced DrScheme, a programming environment for novice Scheme programmers and a research environment for soft typing.

In parallel, the team started conducting workshops for high school teachers, training them in program design and functional programming. Field tests with these teachers and their students provided essential clues for the direction of the development.

Over the following years, PLT added teaching languages, an algebraic stepper, a transparent read-evaluate print loop, a constructor-based printer, and many other innovations to DrScheme. Due to these, DrScheme is an application quality pedagogic program development environment. By 2001, the core team (Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi) had also written and published their first text book, "How to Design Programs", on their teaching philosophy.

Today, DrScheme is far more than a pedagogic programming environment. It supports module-oriented programming with a module browser, a contour view, integrated testing and coverage measurements, syntax-level refactoring, and many more tools. The team uses DrScheme to develop DrScheme, and developers around the world use it to produce commercial software.

Research

From the beginning, the PLT project was also an experiment in evaluating the suitability of Scheme as a programming language for large projects. In a sense, the language failed and yet it also proved to be an ideal platform.

Scheme per se failed because the standard language, as defined in the reports, is too small for a team of 20-30 developers, distributed across three continents. If taken as an ideal kernel, however, Scheme succeeded beyond the team's expectations. It proved easy to extend the language with
* the first mixin class system;
* a component (or module) system, as sophisticated and expressive as Standard ML's;
* a powerful macro system for meta-programming
* the first practical system of delimited control
* and many more constructs that heavily influence the next-generation Scheme report.

The most remarkable feature of these remains the macro system. It provides far more expressive power than Lisp's S-expression manipulation system, Scheme 84's hygienic extend-syntax macros, or R5RS's syntax rules. Indeed, it is fair to say that the macro system is a carefully tuned API for the compiler. Using this compiler API, programmers can add features and entire domain-specific languages in a manner that makes them completely indistinguishable from built-in language constructs. For example, both the class system and the component system are nothing but macro libraries.

In addition to research on programming languages, PLT also used its infrastructure to investigate programming patterns, interactive web programming, refactoring, and many more topics.

Scripting

Over the years, PLT and PLT Scheme programmers have also turned the language into a scripting tool. PLT Scheme is now a viable alternative for
*scripting the Unix shell;
*web servers;
*slide show presentations;
*psychology experimentation software;
*and some others.

PLT Scheme now includes libraries like all common scripting languages. For the last three years, PLT has also maintained PLaneT, a web-based module repository that is smoothly integrated with its module/library system.

References


* Felleisen et al. The TeachScheme! Project. Journal of Computer Science Education. 2004. [http://www.ccs.neu.edu/scheme/pubs/#cse2003-fffk]
* Findler et al. DrScheme: A Programming Environment for Scheme. Journal of Functional Programming. 2001. [http://www.ccs.neu.edu/scheme/pubs/#jfp01-fcffksf]
* Flatt et al. Programming Languages as Operating Systems. International Conference on Functional Programming. 1999. [http://www.ccs.neu.edu/scheme/pubs/#icfp99-ffkf]
* Jacob Matthews. You want it where? Component Development with PLT Scheme. Workshop on Scheme and Functional Programming, 2006. [http://scheme2006.cs.uchicago.edu/04-matthews.pdf]

External links

* [http://www.plt-scheme.org PLT Scheme]
* [http://planet.plt-scheme.org/ PLaneT]
* [http://ja.soegaard.net/planet/html/ PLT Source Browser]
* [http://www.scheme.dk/search-plt/ PLT Scheme Source Search]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Scheme (язык программирования) — Scheme Семантика: функциональный Тип исполнения: интерпретатор или компилятор Появился в: 1970 г. Автор(ы): Гай Стил и Джеральд Сассмен Типизация данных …   Википедия

  • Scheme — Семантика: функциональный Тип исполнения: интерп …   Википедия

  • Scheme — Basisdaten Paradigmen: Multi Paradigma: funktional, prozedural, meta Ersche …   Deutsch Wikipedia

  • PLT — may stand for: * Pearson Language Tests * Plants count of plants * Pneumatic Line Thrower by Restech Norway AS [http://www.restech.no] * Patent Law Treaty * Power Line Telecommunications * Platelet count * PLT Scheme, a programming language * PLT …   Wikipedia

  • Scheme —  Pour l’article homonyme, voir scheme.  Scheme …   Wikipédia en Français

  • Teach Yourself Scheme in Fixnum Days — is an introductory book by Dorai Sitaram on the Scheme programming language using the PLT Scheme Scheme implementation. External links * [http://www.ccs.neu.edu/home/dorai/t y scheme/t y scheme.html Book homepage] …   Wikipedia

  • Racket (programming language) — Racket Paradigm(s) Multi paradigm: Functional, Procedural, Modular, Object oriented, Reflective, Meta Appeared in 1994 Developer …   Wikipedia

  • DrScheme — Infobox Software name = DrScheme caption = DrScheme Editing Environment on Windows developer = PLT latest release version = 4.1 PLT Scheme blog, [http://blog.plt scheme.org/2008/08/plt scheme v41.html PLT Scheme v4.1] ] latest release date =… …   Wikipedia

  • TeachScheme! — The TeachScheme! project is an outreach effort of the PLTresearch group. The goal is to train college faculty, high school teachers andpossibly even middle school teachers in programming and computing.HistoryMatthias Felleisen and PLT started the …   Wikipedia

  • DrScheme — ist eine integrierte Entwicklungsumgebung (IDE) für die Programmiersprache Scheme. Die Software ist mit einer grafischen Benutzeroberfläche ausgestattet und ist Bestandteil von PLT Scheme. DrScheme kommt oft in Informatikkursen von Universitäten… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”