descriptionTranslator from Common Lisp to JavaScript
homepage URL
repository URL
last changeSun, 8 Jul 2018 22:14:48 +0000 (8 15:14 -0700)
last refreshSun, 15 Jul 2018 23:38:54 +0000 (16 01:38 +0200)
content tags
Parenscript is a translator from an extended subset of Common Lisp to
JavaScript. Parenscript code can run almost identically on both the
browser (as JavaScript) and server (as Common Lisp).

Parenscript code is treated the same way as Common Lisp code, making
the full power of Lisp macros available for JavaScript. This provides
a web development environment that is unmatched in its ability to
reduce code duplication and provide advanced meta-programming
facilities to web developers.

At the same time, Parenscript is different from almost all other
"language X" to JavaScript translators in that it imposes almost no

  No run-time dependencies:
    Any piece of Parenscript code is runnable as-is. There are no
    JavaScript files to include.
  Native types:
    Parenscript works entirely with native JavaScript data types. There
    are no new types introduced, and object prototypes are not
  Native calling convention:
    Any JavaScript code can be called without the need for
    bindings. Likewise, Parenscript can be used to make efficient,
    self-contained JavaScript libraries.
  Readable code:
    Parenscript generates concise, formatted, idiomatic JavaScript
    code. Identifier names are preserved. This enables seamless
    debugging in tools like Firebug.
    Parenscript introduces minimal overhead for advanced Common Lisp
    features. The generated code is almost as fast as hand-written

Parenscript is available via Quicklisp: (ql:quickload :parenscript)

  See docs/tutorial.html and docs/reference.html
Mailing list:
Web site:
Source repository:
7 days ago Vladimir SedachUpdated reference manual with info about BLOCK and... master
7 days ago Vladimir SedachAdded .dir-locals file with formatting guidelines
7 days ago Vladimir SedachUpdated docs/introduction.lisp
8 days ago Vladimir SedachUpdated README, got rid of redundant
8 days ago Vladimir SedachDeleted darcs vestige .boring file
8 days ago Vladimir SedachClarified that the license is BSD 3-clause. Added SPDX...
2018-06-30 Vladimir SedachUpdated reference manual list of boolean operators
2018-06-30 Vladimir SedachMerge pull request #38 from WarrenWilkinson/master
2018-06-30 Vladimir SedachQuiet SBCL compiler-notes in eval-tests
2018-06-08 Warren WilkinsonMove *ps-gensym-counter* to stop compile warning
2018-03-29 Vladimir SedachFix ambiguities in tutorial slideshow and add 404 handling
2018-03-28 Vladimir SedachFixed last updated date on reference manual
2018-03-28 Vladimir SedachMarkup and spelling corrections to the reference manual
2018-03-28 Vladimir SedachUpdated tutorial
2018-03-28 Vladimir SedachAdded old tutorial to source control
2018-02-04 Vladimir SedachMerge pull request #37 from neil-lindquist/improve...
10 years ago parenscript-20071104 parenscript-20071104 release
10 years ago parenscript-20071031 parenscript-20071031 release
10 years ago parenscript-20070828 parenscript-20070828 release
10 years ago parenscript-20070720 parenscript-20070720 release
7 days ago master
5 years ago srcmap
6 years ago loop