Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Scheme (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Usage == Scheme is widely used by several<ref name="schemers_inc">{{Cite web |last=Ed Martin |date=2009-07-20 |title=List of Scheme-using schools |url=http://www.schemers.com/schools.html |access-date=2009-10-20 |publisher=Schemers Inc.}}</ref> schools; in particular, several introductory [[computer science]] courses use Scheme in conjunction with the textbook ''[[Structure and Interpretation of Computer Programs]]'' (SICP).<ref name="sicp_adopters">{{Cite web |date=1999-01-26 |title=List of SICP-using schools |url=http://mitpress.mit.edu/sicp/adopt-list.html |access-date=2009-10-20 |publisher=MIT Press}}</ref> For the past 12 years, [[Racket (programming language)|PLT]] has run the [[ProgramByDesign]] (formerly TeachScheme!) project, which has exposed close to 600 high school teachers and thousands of high school students to rudimentary Scheme programming. [[MIT]]'s old introductory programming class 6.001 was taught in Scheme,<ref name="6.001">{{Cite web |last=Eric Grimson |author-link=Eric Grimson |date=Spring 2005 |title=6.001 Structure and Interpretation of Computer Programs |url=http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm |access-date=2009-10-20 |publisher=MIT Open Courseware}}</ref> Although 6.001 has been replaced by more modern courses, SICP continues to be taught at MIT.<ref name="6.001_zombies">{{Cite web |last1=Alex Vandiver |last2=Nelson Elhage |display-authors=etal |date=January 2009 |title=6.184 - Zombies drink caffeinated 6.001 |url=http://web.mit.edu/alexmv/6.001/ |access-date=2009-10-20 |publisher=MIT CSAIL}}</ref> Likewise, the introductory class at [[UC Berkeley]], CS 61A, was until 2011 taught entirely in Scheme, save minor diversions into [[Logo (programming language)|Logo]] to demonstrate dynamic scope. Today, like MIT, Berkeley has replaced the syllabus with a more modern version that is primarily taught in [[Python (programming language)|Python 3]], but the current syllabus is still based on the old curriculum, and parts of the class are still taught in Scheme.<ref name="61A">{{Cite web |last=John DeNero |date=Fall 2019 |title=Computer Science 61A, Berkeley |url=https://cs61a.org/articles/about.html |access-date=2019-12-17 |publisher=Department of Electrical Engineering and Computer Sciences, Berkeley}}</ref> The textbook ''[[How to Design Programs]]'' by Matthias Felleisen, currently at Northeastern University, is used by some institutes of higher education for their introductory computer science courses. Both [[Northeastern University]] and [[Worcester Polytechnic Institute]] use Scheme exclusively for their introductory courses Fundamentals of Computer Science (CS2500) and Introduction to Program Design (CS1101), respectively.<ref name="neu">[http://www.ccs.neu.edu/course/cs2500/ CS 2500: Fundamentals of Computer Science I], [[Northeastern University]]</ref><ref name="wpi">[http://web.cs.wpi.edu/~cs1101/a05/details.html#software CS 1101: Introduction to Program Design (A05): course software], [[Worcester Polytechnic Institute]]</ref> [[Rose-Hulman Institute of Technology]] uses Scheme in its more advanced Programming Language Concepts course.<ref name="rhit">{{Cite web |title=CSSE 304: Programming Language Concepts |url=https://www.rose-hulman.edu/Users/faculty/young/CS-Classes/csse304/syllabus.html |publisher=[[Rose-Hulman Institute of Technology]]}}</ref> [[Brandeis University]]'s core course, Structure and Interpretations of Computer Programs (COSI121b), is also taught exclusively in Scheme by theoretical computer scientist [[Harry Mairson]].<ref name="brandeis">{{Cite web |title=Spring 2021 CS121b Syllabus |url=https://moodle2.brandeis.edu/syllabus/public/1202dcdfe19c0860e226f6447f66875c.pdf |publisher=[[Brandeis University]]}}</ref> [[Indiana University]]'s introductory class, C211, is taught entirely in Scheme. A self-paced version of the course, CS 61AS, continues to use Scheme.<ref>{{cite web |url=https://berkeley-cs61as.github.io/ |title=Home |website=berkeley-cs61as.github.io}}</ref> The introductory computer science courses at [[Yale]] and [[Grinnell College]] are also taught in Scheme.<ref name="yale_cs201">{{Cite web |last=Dana Angluin |date=Fall 2009 |title=Introduction to Computer Science (CPSC 201) |url=http://zoo.cs.yale.edu/classes/cs201/ |access-date=2009-10-20 |publisher=The Zoo, Yale University Computer Science Department}}</ref> Programming Design Paradigms,<ref name="neu2">{{Cite web |date=Fall 2009 |title=Programming Design Paradigms CSG107 Course Readings |url=http://www.ccs.neu.edu/home/matthias/107-f08/readings.html |access-date=2012-08-09 |publisher=Northeastern University College of Computer and Information Science}}</ref> a mandatory course for the Computer science Graduate Students at [[Northeastern University]], also extensively uses Scheme. The former introductory computer science course at the University of Minnesota - Twin Cities, CSCI 1901, also used Scheme as its primary language, followed by a course that introduced students to the Java language;<ref name="umn">[http://www-users.itlabs.umn.edu/classes/Spring-2010/csci1901/ Structure of Computer Programming I] {{Webarchive|url=https://web.archive.org/web/20100619111110/http://www-users.itlabs.umn.edu/classes/Spring-2010/csci1901/ |date=2010-06-19}}, Computer Science Department, University of Minnesota, Spring 2010 (accessed 2010-01-30).</ref> however, following the example of MIT, the department replaced 1901 with the Python-based CSCI 1133,<ref name="umn2">[https://www.cs.umn.edu/academics/undergraduate/curriculum/required CSci Required Class Course Descriptions and Other Information] {{Webarchive|url=https://web.archive.org/web/20191025145152/https://www.cs.umn.edu/academics/undergraduate/curriculum/required |date=2019-10-25}}, Computer Science Department, University of Minnesota (accessed 2019-10-25)</ref> while functional programming is covered in detail in the third-semester course CSCI 2041.<ref name="umn3">[https://www.csdy.umn.edu/~shield/csecc/minutes/2013-4-23/csci2041.html CSCI 2041βNew Course] CSE Curriculum Committee, University of Minnesota (accessed 2019-10-25)</ref> Scheme is/was also used for the following: * The [[Document Style Semantics and Specification Language]] (DSSSL), which provides a method of specifying [[SGML]] [[Style sheet (web development)|stylesheet]]s, uses a Scheme subset.<ref name="dsssl">{{Cite web |last=Robin Cover |date=2002-02-25 |title=DSSSL - Document Style Semantics and Specification Language. ISO/IEC 10179:1996 |url=http://xml.coverpages.org/dsssl.html |access-date=2012-08-09 |publisher=Cover Pages}}</ref> * The well-known [[Open-source software|open source]] [[raster graphics editor]] [[GIMP]] uses [[TinyScheme]] as a [[scripting language]].<ref name="gimp">"''The major scripting language for the GIMP that has been attached to it today is Scheme.''" From {{Cite web |last=Dov Grobgeld |year=2002 |title=The GIMP Basic Scheme Tutorial |url=http://www.gimp.org/tutorials/Basic_Scheme/ |access-date=2012-08-09 |publisher=The GIMP Team}}</ref> * [[GNU Guile|Guile]] has been adopted by [[GNU]] project as its official scripting language, and that implementation of Scheme is embedded in such applications as [[GNU LilyPond]] and [[GnuCash]] as a scripting language for extensions. Likewise, Guile used to be the scripting language for the [[desktop environment]] [[GNOME]],<ref name="archive_gnomefaq">{{Cite web |last1=Todd Graham Lewis |last2=David Zoll |last3=Julian Missig |year=2002 |title=GNOME FAQ from Internet Archive |url=http://www.gnome.org/gnomefaq/html/x930.html |archive-url=https://web.archive.org/web/20000522010523/http://www.gnome.org/gnomefaq/html/x930.html |archive-date=2000-05-22 |access-date=2012-08-09 |publisher=The Gnome Team, gnome.org}}</ref> and GNOME still has a project that provides Guile bindings to its library stack.<ref name="live_gnome">{{Cite web |title=guile-gnome |url=https://www.gnu.org/software/guile-gnome/ |access-date=2012-08-09 |publisher=Free Software Foundation}}</ref> There is a project to incorporate Guile into [[GNU Emacs]], GNU's flagship program, replacing the current [[Emacs Lisp]] interpreter.{{Citation needed |reason=Where is the source? |date=May 2019}} * [[Extension Language Kit|Elk Scheme]] is used by [[Synopsys]] as a scripting language for its [[Technology CAD|technology CAD (TCAD)]] tools.<ref name="tcad">{{Cite web |last=Laurence Brevard |date=2006-11-09 |title=Synopsys MAP-in<sup>SM</sup> Program Update: EDA Interoperability Developers' Forum |url=http://www.synopsys.com/community/interoperability/documents/devforum_pres/2006nov/milkywaysession_mapin_overview.pdf |access-date=2012-08-09 |publisher=Synopsis Inc}}</ref> * Shiro Kawai, senior programmer on the movie ''[[Final Fantasy: The Spirits Within]]'', used Scheme as a scripting language for managing the real-time rendering engine.<ref name="shiro_kawai">{{Cite journal |last=Kawai |first=Shiro |date=October 2002 |title=Gluing Things Together - Scheme in the Real-time CG Content Production |url=http://practical-scheme.net/docs/ILC2002.html |journal=Proceedings of the First International Lisp Conference, San Francisco |pages=342β348 |access-date=2012-08-09}}</ref> * [[Google App Inventor]] for [[Android (operating system)|Android]] uses Scheme, where [[Kawa (Scheme implementation)|Kawa]] is used to compile the Scheme code down to bytecodes for the [[Java virtual machine]] running on Android devices.<ref name="android">{{Cite web |last1=Bill Magnuson |last2=Hal Abelson |last3=Mark Friedman |name-list-style=amp |date=2009-08-11 |title=Under the Hood of App Inventor for Android |url=http://googleresearch.blogspot.com/2009/08/under-hood-of-app-inventor-for-android.html |access-date=2012-08-09 |publisher=Google Inc, Official Google Research blog}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)