From: Carl Sorensen Date: Thu, 26 Mar 2009 03:15:15 +0000 (-0600) Subject: DOCS: Additions to Programming of CG X-Git-Tag: release/2.13.1-1~61^2~1^2~12 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6f439438dd3f2c67c74def103b889a98ee927cc0;p=lilypond.git DOCS: Additions to Programming of CG --- diff --git a/Documentation/devel/programming-work.itexi b/Documentation/devel/programming-work.itexi index 1c97019a5b..a868893ec0 100644 --- a/Documentation/devel/programming-work.itexi +++ b/Documentation/devel/programming-work.itexi @@ -3,7 +3,7 @@ @chapter Programming work @menu -* Introduction to programming:: +* LilyPond programming languages:: * Programming without compiling:: * Finding functions:: * Code style:: @@ -12,11 +12,72 @@ @end menu -@node Introduction to programming -@section Introduction to programming +@node LilyPond programming languages +@section LilyPond programming languages -FIXME -- decide what goes in here and put it here. I'm not sure what -should be here -- CDS +Programming in LilyPond is done in a variety of programming languages. Each +language is used for a specific purpose or purposes. This section describes +the languages used and provides links to reference manuals and tutorials for +the relevant language. + +@subsection C++ + +The core functionality of LilyPond is implemented in C++. + +C++ is so ubiquitous that it is difficult to identify either a reference +manual or a tutorial. Programmers unfamiliar with C++ will need to spend some +time to learn the language before attempting to modify the C++ code. + +The C++ code calls Scheme/GUILE through the GUILE interface, which is +documented in the GUILE +Reference Manual. + +@subsection GNU Bison + +The LilyPond parser is implemented in Bison, a GNU parser generator. The +Bison homepage is found at +gnu.org. The manual (which includes both a reference and tutorial) is available in a +variety of formats. + +@subsection GNU Make + +GNU Make is used to control the compiling process and to build the +documentation and the website. GNU Make documentation is avaialble at + the GNU website. + +@subsection GUILE or Scheme + +GUILE is the dialect of Scheme that is used as LilyPond's extension language. Many extensions to LilyPond are written entirely in GUILE. The + +GUILE Reference Manual is available online. + + Structure and +Interpretation of Computer Programs, a popular textbook used to teach +programming in Scheme is available in its entirety online. + +@subsection MetaFont + +MetaFont is used to create the music fonts used by LilyPond. A MetaFont +tutorial is available at the +METAFONT tutorial page. + +@subsection PostScript + +PostScript is used to generate graphical output. A brief PostScript tutorial +is +available online. The PostScript Lanugage +Reference is available online in PDF format. + +@subsection Python + +Python is used for XML2ly and is used for buillding the documentation and the +website. + +Python documentation is available at +python.org. @node Programming without compiling @section Programming without compiling