A.16 Glossari tècnic

Glossari dels termes tècnics i conceptes que s’utilitzen internament al LilyPond. Aquests termes poden aparèixer als manuals, a les llistes de distribució de correu o al codi font.


alist (llista-A)

Una llista associativa o abreujadament una llista-A (alist en anglès) és una parella de l’Scheme que associa un valor amb una clau: (clau . valor). Per exemple, a ‘scm/lily.scm’, la llista-A “type-p-name-alist” associa certs predicats de tipus (per exemple ly:music?) amb noms (per exemple “music”) de forma que es pugui informar de les fallades de comprovació de tipus amb un missatge de consola que inclou el nom del predicat de tipus esperat.


callback

Una callback és una rutina, funció o mètode la referència del qual es passa com argument en una crida a una altra rutina, permetent així que la rutina anomenada la invoqui. La tècnica permet que una capa de programari de nivell més baix cridi a una funció definida en una capa de nivell més alt. Les funcions de callback s’usen àmpliament al LilyPond per permetre al codi de l’Scheme del nivell d’usuari definir quantes accions de baix nivell es fan.


closure (tancadura)

A l’Scheme, es crea una tancadura quan una funció, en general una expressió lambda, es passa com a variable. La tancadura conté el codi de la funció i referències a les lligadures lèxiques de les variables lliures de la funció (és a dir, les variables que s’usen a la expressió però es defineixen fora d’ella). Quan més tard s’aplica aquesta funció a diferents arguments, les lligadures de variables lliures que es van capturar dins de la tancadura s’utilitzen per obtenir els valors de les variables lliures que s’usaran en el càlcul. Una propietat útil de les tancadures és la retenció dels valors interns de les variables d’una invocació a una altra, permetent així que es pugui mantenir un estat.


glif

Un glif és una representació gràfica particular d’un caràcter tipogràfic, o una combinació de dos caràcters que formen una lligadura. Un conjunt de glifs amb un estil i forma uniformes formen un tipus de lletra, i un conjunt de tipus de lletra que abasten diversos estils formen un tipus.

Vegeu també

Referencia de la notació: Tipus de lletra, Caràcters especials.


grob (objecte gràfic)

Els objects del LilyPond que representen elements de la notació en la sortida impresa tals com el cap i la plica de les notes, lligadures d’unió i d’expressió, digitacions, claus, etc., es denominen ‘objectes de presentació’, sovint coneguts com ‘OBjectes GRàfics’, o abreujadament, grobs. Es representen mitjançant instàncies de la classe Grob.

Vegeu també

Manual d’aprenentatge: Objectes i interfícies, Convencions de noms d'objectes i propietats, Propietats dels objectes de presentació.

Referència de funcionament intern: grob-interface, All layout objects.


immutable

Un objecte immutable és un objectes l’estat del qual no es pot modificar després de la seva creació, en contrast amb els objectes mutables, que es poden modificar després de la seva creació.

Al LilyPond les propietats immutables o compartides defineixen l’estil i el comportament predeterminats dels grobs. Es comparteixen per part de molts objectes. En aparent contradicció amb el seu nom, es poden canviar utilitzant \override i \revert.

Vegeu també

Referècia de la notació: mutable.


interfície

Les accions i propietats comunes a un conjunt de grobs s’agrupen en un objecte denominat interfície de grob (grob-interface), o abreujadament ‘interfície’.

Vegeu també

Manual d’aprenentatge: Objectes i interfícies, Convencions de noms d'objectes i propietats, Propietats de les interfícies.

Referència de la notació: Interfícies de la presentació.

Referècia de funcionament intern: Graphical Object Interfaces.


lexer (analitzador lèxic)

Un lexer o analitzador lèxic és un programa que converteix una seqüència de caràcters en una seqüència d’elements o tokens, usant un procés que s’anomena anàlisi lèxica. L’analitzador lèxic del LilyPond converteix el flux obtingut a partir d’un fitxer d’entrada ‘.ly’ en un flux descompost en tokens més apte per a la fase següent del processat: l’anàlisi sintàctica, vegeu parser (analitzador sintàctic). L’analitzador lèxic del LilyPond lexer està construït amb l’eina Flex a partir del fitxer de lexer ‘lily/lexer.ll’ que conté les regles lèxiques. Aquest fiter és part del codi font i no s’inclou dins de la instal·lació binària del LilyPond.


mutable

Un objecte mutable es un objecte l’estat del qual es pot modificar després de la seva creació, en contrast amb un objecte immutable, l’estat del qual es fixa al moment de la creació.

Al LilyPond les propietats mutables contenen valors específics d’un grob. En general, les llistes d’altres objectes o els resultats dels càlculs s’emmagatzemen a propietats mutables.

Vegeu també

Referència de la notació: immutable.


output-def (definició de sortida)

Una instància de la classe Output-def conté els mètodes i les estructures de dades associades amb un bloc de sortida. Es creen instàncies per al blocs midi, layout i paper.


parser (analitzador sintàctic)

Un parser o analitzador sintàctic analitza la seqüència de tokens o elements lèxics produïda per un analitzador lèxic per determinar la seva estructura gramatical, agrupant els elements lèxics en conjunts més grans segons les regles de la gramàtica. Si la seqüència d’elements lèxics és vàlida, el producte final és un arbre de tokens l’arrel del qual és el símbol inicial de la gramàtica. Si es pot aconseguir això, el fitxer és invàlid i es produeix un missatge d’error adequat. Les agrupacions sintàctiques i les regles per construir aquestes agrupacions a partir dels seus elements constituents per a la sintaxi del LilyPond estan definides a ‘lily/parser.yy’ i es mostre a la forma normal del Backus (bnf) dins de grammar LilyPond grammar. Aquest fitxer s’usa per construir l’analitzador sintàctic durant la compilació del programa per part del generador d’analitzadors sintàctics, Bison. És part del codi font i no s’inclou dins de la instal·lació binària del LilyPond.


variable de l’analitzador sintàctic

Són variables definides directament dins de l’Scheme. Es desaconsella fortament el seu ús directe per part dels usuaris, perquè la seva semàntica d’àmbit pot ser confusa.

Quan el valor d’una d’aquestes variables es modifica dins d’un fitxer archivo ‘.ly’, el canvi és global, i a no ser que es reverteixi explícitament, el nou valor persistirà fins el final del fitxer, afectant a tots els blocs de \score així com als fitxers externs afegits amb l’ordre \include. Això pot conduir a conseqüències imprevistes i als projectes de gravació complexos pot ser difícil de rastrejar.

El LilyPond utilitza les variables següents de l’analitzador sintàctic:


prob (objecte de propietats)

Els OBjectes de PRopietats, o abreujadament probs, són instàncies de la classe Prob, que és una classe bàsica senzilla que té llistes-A de propietats mutables i immutables i els mètodes per manipular-les. Les classes Music i Stream_event deriven de Prob. També es creen instàncies de la classe Prob per emmagatzemar el contingut formatat dels grobs del sistema i els blocs de títols durant el procés de disposició de la pàgina.


smob (objecte de l’Scheme)

Els Smobs, o OBjectes de l’ScheMe, formen part del mecanisme utilitzat pel Guile per exportar objectes de C i de C++ al codi de l’Scheme. Al LilyPond es creen smobs a partir d’objectes de C++ mitjançant macros. Hi ha dos tipus d’objectes smob: els smobs simples, orientats a objectes immutables simples com nombres, i els smobs complexos, usats per a objectes amb identitats. Si teniu accés a les fonts del LilyPond, trobareu més informació a ‘lily/includes/smob.hh’.


stencil (segell)

Les instàncies de la classe stencil contenen la informació necessària per imprimir un objecte tipogràfic. És un smob simple que conté una caixa de confinament, que al seu cop defineix les dimensions vertical i horitzontal de l’objecte, i una expressió de l’Scheme que imprimeix l’objecte quan s’avalua. Els stencils o segells es poden combinar per formar segells més complexos definits per un arbre d’expressions de l’Scheme format a partir de les expressions de l’Scheme dels segells que el composen.

La propietat stencil, que connecta a un grob amb el seu segell es defineix dins de la interfície grob-interface.

Vegeu també

Referència de funcionament intern: grob-interface.


LilyPond — Referència de la notació v2.23.82 (branca de desenvolupament).