Suivant : Exemples d'applications, Précédent : Quels signes graver ?, Haut : Introduction
Idéalement, le format d'entrée pour n'importe quel système de formatage est une description abstraite du contenu. Dans ce cas-ci, ce serait la musique elle-même. Cela pose un formidable problème : comment pouvons-nous définir ce que la musique est réellement ? Plutôt que d'essayer de trouver une réponse, nous avons renversé la question. Nous écrivons un logiciel capable de produire de la musique écrite, et adaptons le format pour atteindre la plus grande concision possible. Quand le format ne peut plus être simplifé, il nous reste par définition le contenu lui-même. Notre logiciel sert de définition formelle d'un document de musique.
La syntaxe est également l'interface utilisateur pour LilyPond, par conséquent il est facile de saisir
c'4 d'8
c'est-à-dire un do central noire et, juste au-dessus un ré croche
Sur une échelle microscopique, une telle syntaxe est facile à utiliser. A plus grande échelle, la syntaxe a besoin aussi de structure. Comment serait-il possible autrement de rentrer des pièces complexes comme des symphonies ou des opéras? La structure est formée par le concept d'expression musicale : en combinant de petits fragments de musique pour en former de plus grands, on peut exprimer de la musique plus complexe. Par exemple
c4
Des accord peuvent être construits avec <<
et >>
autour
des notes.
<<c4 d4 e4>>
Cette expression est mise dans une séquence en l'encadrant avec des
accolades { ... }
{ f4 <<c4 d4 e4>> }
Ceci est également une expression, et peut donc encore une fois
être combinée avec d'autres expressions simultanées (une blanche)
en utilisant <<, \\
, et >>
<< g2 \\ { f4 <<c4 d4 e4>> } >>
De telles strucutres récursives peuvent être spécifiées formellement et de manière ordonnée dans une grammaire indépendante de tout contexte. Le code d'analyse est aussi générée à partir de cette grammaire. Autrement dit, la syntaxe de LilyPond est définie clairement et sans ambiguités.
L'interface utilisateur et la syntaxe sont ce que les gens voient et
manipulent le plus. Elles sont e npartie une affaire de goût, et
aussi sujettes à beaucoup de discussions. Même si ces discussions sur
les goûts ont leur mérite, elles ne sont pas très productives. D'un
point de vue plus large sur LilyPond, l'importance de la syntaxe est
minime : il est facile d'inventer une syntaxe concise, alors qu'écrire
un code de formatage décent est beaucoup plus difficile. Ceci est
également illustré par le nombre de lignes de codes pour les
composants respectifs : l'analyse et la représentation représentent
moins de 10% du code source.
Suivant : Exemples d'applications, Précédent : Quels signes graver ?, Haut : Introduction
This page is for LilyPond-2.10.33 (stable-branch).
Other languages: English.