[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

A.15 Technisches Glossar

@translationof Technical glossary

Ein Glossar der technischen Ausdrücke und Konzepte, die von LilyPond intern benutzt werden. Die Ausdrücke kommen in den Handbüchern, auf den Mailinglisten oder im Quellcode vor.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

alist

@translationof alist

Eine assoziative Liste oder alist in kurz ist ein Scheme-Paar, das einen Wert mit einem Schlüssel assoziiert: (Schlüssel . Wert). In der Datei ‘scm/lily.scm’ beispielsweise assoziiert die alist „type-p-name-alist“ bestimmte Prädikate (etwa ly:music?) mit Bezeichnungen (wie „music“) sodass Fehler der Typüberprüfung über eine Konsolennachricht mitgeteilt werden können, die auch die Bezeichnung des erwarteten Typprädikats mitteilt.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

callback

@translationof callback

Ein callback ist eine Routine, Funktion oder Methode, deren Referenz in einem Aufruf als Argument an eine andere Routine weitergereicht wird, sodass die aufgerufene Routine ermöglicht wird, das Argument zu aktivieren. Die Technik ermöglicht es einer niedrigeren Ebene des Programmes, eine Funktion aufzurufen, die auf höherer Ebene definiert wurde. Callbacks werden sehr ausgiebig in LilyPond eingesetzt, um es Scheme-Code auf der Benutzerebene zu erlauben, wie viele Funktionen der niedrigeren Ebene ausgeführt werden sollen.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

closure

@translationof closure

In Scheme entsteht ein closure (Abschluss), wenn eine Funktion, normalerweise ein Lambda-Ausdruck, als Variable weitergegeben wird. Das closure enthält den Code der Funktion plus Verweise zu den lexikalischen Verknüpfungen der freien Variablen der Funktion (also die Variablen, die in Ausdrücken benutzt werden, aber außerhalb von ihnen definiert werden). Wenn diese Funktion später einem anderen Argument zugewiesen wird, werden die freien Variabel-Verknüpfungend, die in das closure eingeschlossen sind, benutzt um die Werte der freien Variablen, die in der Rechnung benutzt werden sollen, zu errechnen. Eine nützliche Eigenschaft von closures ist, dass man interne variable Werte zwischen den Aufrufen wiederverwerten kann, sodass ein Status erhalten bleiben kann.

Ein simple closure (einfacher Abschluss) ist ein closure, dessen Ausdruck keine freien Variablen und auch keine freien Variablel-Verknüpfungen hat.

Ein simple closure wird in LilyPond von einem smob dargestellt, der den Ausdruck und eine Methode, wie der Ausdruck auf eine Liste von Argumenten angewendet werden soll, enthält.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

glyph

@translationof glyph

Ein glyph (Glyphe) ist eine bestimmte graphische Repräsentation eines typographischen Charakters oder einer Kombination von zwei oder mehr Charakteren, die dann eine Ligatur bilden. Eine Gruppe an Glyphen des gleichen Stils bilden ein Font, und eine Gruppe an Fonts, die mehrere Stile darstellen, bilden eine Schriftfamilie (engl. typeface).

Siehe auch

Notationsreferenz: @ref{Fonts}, sonderzeichen.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

grob

@translationof grob

LilyPond-Objekte, die Elemente der Notation in der graphischen Ausgabe des Programmen darstellen, wie etwa Notenköpfe, Hälse, Bögen, Bindebögen, Fingersatz, Schlüssel usw., werden „Layout-Objekte“ genannt, auch oft als „GRaphische OBjekte“ bezeichnet, was dann zu grob abgekürzt wird.

Siehe auch

Handbuch zum Lernen: (learning)Objects and interfaces in Abschnitt ‘Objects and interfaces’ in Handbuch zum Lernen, (learning)Naming conventions of objects and properties in Abschnitt ‘Naming conventions of objects and properties’ in Handbuch zum Lernen, (learning)Properties of layout objects in Abschnitt ‘Properties of layout objects’ in Handbuch zum Lernen.

Referenz der Interna: (internals)All layout objects in Abschnitt ‘All layout objects’ in Referenz der Interna.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

immutable

@translationof immutable

Ein immutable (unberührbares) Objekt ist ein, dessen Status nach der Erstellung nicht mehr verändert werden kann, entgegen einem mutable Objekt, das nach der Erstellung noch verändert werden kann.

In LilyPond sind unberührbare oder geteilte Eigenschaften das Standardverhalten von Grobs. Sie werden zwischen vielen Objekten geteilt. Entgegen ihrer Bezeichnung können sie jedoch mit \override und \revert verändert werden.

Siehe auch

Notationsreferenz: mutable.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

interface

@translationof interface

Aktionen und Eigenschaften, die eine Gruppe von Grobs gemeinsam haben, werden in ein Objekt gesammelt, das als grob-interface oder auch „Schnittstelle“ (engl. interface) bezeichnet wird.

Siehe auch

Handbuch zum Lernen: (learning)Objekte und Schnittstellen in Abschnitt ‘Objekte und Schnittstellen’ in Handbuch zum Lernen, (learning)Regeln zur Benennung von Objekten und Eigenschaften in Abschnitt ‘Regeln zur Benennung von Objekten und Eigenschaften’ in Handbuch zum Lernen, Abschnitt ‘Eigenschaften’ in learning,Handbuch zum Lernen.

Notationsreferenz: Layout-Schnittstellen.

Referenz der Interna: (internals)Graphical Object Interfaces in Abschnitt ‘Graphical Object Interfaces’ in Referenz der Interna.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

lexer

@translationof lexer

Ein lexer ist ein Programm, das eine Charaktersequenz in eines Sequenz von Tokens übersetzt. Dieser Prozess wird als lexikalische Analyse bezeichnet. Der LilyPond-Lexer konvertiert eine Eingabedatei (‘.ly’ in eine Datei mit Tokens, die sich besser für den nächsten Schritt der Verarbeitung, nämlich das Parsen, eignet. Siehe parser.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

mutable

@translationof mutable

Ein mutable (veränderbares) Objekt ist ein Objekt, dessen Status verändert werden kann, im Gegenteil zu einem immutable Objekt, dessen Status zur Entstehungszeit festgelegt ist.

In LilyPond enthalten mutable Eigenschaften Werte, die nur für einen Grob gelten. Normalerweise werden Listen von anderen Objekten oder Resultate einer Berechnung in mutablen Eigenschaften gespeichert.

Siehe auch

Notationsreferenz: immutable.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

output-def

@translationof output-def

Eine Instanz der Output-def-Klasse enthält die Methoden und Datenstruktur, die mit einem Ausgabeabschnitt assoziiert wird. Instanzen werden für midi, layout und paper-Umgebungen erstellt.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

parser

@translationof parser

Ein parser (Syntaxanalysierer) analysiert die Tokensequenzen, die von einem Lexer erstellt wurden, um deren grammatikalische Struktur zu entschlüsseln, wie sie von den Regeln des Eingabeformates vorgegeben werden. Dabei werden die Sequenzen in immer größere Gruppen entsprechend den grammatischen Regeln zusammengefasst. Wenn die Kette der Tokens gültig ist, ist das Endprodukt ein Token-Baum, dessen Wurzel das Startsymbol der Grammatik ist. Wenn dies nicht erreicht werden kann, ist die Datei nicht korrekt und ensprechende Fehlermeldungen werden ausgegeben. Die syntaktischen Gruppierungen und die Regeln, nach welchen die Gruppen aus ihren Einzelteilen nach der LilyPond-Syntax erstellt werden, finden sich in der Datei ‘lily/parser.yy’ und werden in der Backus Normal Form (BNF) in (contributor)LilyPond grammar in Abschnitt ‘LilyPond-Grammatik’ in Contributor’s Guide gezeigt. Diese Datei wird benutzt, um den Parser während der Programmkompilation zu erstellen. Hierzu wird der Parser-Ersteller Bison verwendet. Er ist Teil des Quellcodes und nicht in die binäre Installation von LilyPond integriert.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

parser variable

@translationof parser variable

Diese Variablen werden direkt in Scheme definiert. Von ihrer direkten Benutzung durch den Benutzer wird streng abgeraten, weil ihre Semantikzuordnung sehr verwirrend sein kann.

Wenn der Wert einer derartigen Variable in einer ‘.ly’-Datei verändert wird, ist diese Änderung global, und wenn sie nicht explizit rückgängig gemacht wird, wird der neue Wert bis zum Ende der Datei gelten und dabei sowohl aufeinander folgende \score-Umgebungen als auch externe Dateien, die mit \include geladen werden, beeinflussen. Das kann zu nicht gewollten Konsequenzen führen, und in komplizierteren Projekten kann es sehr schwer sein, die immer wieder auftretenden Fehler zu beheben.

LilyPond benutzt folgende Parser-Variablen:


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

prob

@translationof prob

Property OBjects, also Eigenschaftsobjekte, oder kurz Prob, sind Mitglieder der Prob-Klasse, eine einfache Basisklasse für Objekte, die mutable oder immutable alists haben und die Methoden, mit denen sie verändert werden können. Die Music- und Stream_event-Klassen stammen von Prob ab. Verkörperungen der Prob-Klasse werden auch erstellt, um formatierte Inhalte von Systemgrobs und Titelblöcken während der Erstellung des Seitenlayouts zu speichern.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

simple closure

@translationof simple closure

Siehe closure.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

smob

@translationof smob

Smobs sind ScheMe-OBjekte, Teile des Mechanismus von Guile, um C- und C++-Ojekte in Scheme-Code zu exportieren. In LilyPond werden Smobs von C++-Objekten mithilfe von Makros erstellt. Es gibt zwei Arten von Smob-Objekten: einfache Smobs, die da sind für einfach immutable Objekte wie Nummern, und komplexe Smobs, benutzt für Objekte mit einer Identität. Wenn Sie auf die LilyPond-Quellen zurückgreifen können, findet sich mehr Information hierzu in ‘lily/includes/smob.hh’.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

stencil

@translationof stencil

Eine Einheit der stencil-Klasse enthält die Information, die benötigt wird um ein typographisches Objekt zu setzen. Es handelt sich um einen sehr einfachen Smob, der eine begrenzende Box enthält, welche die vertikale und horizontale Ausdehnung des Objekt beschreibt, und einen Scheme-Ausdruck, der das Objekt ausgibt, nachdem es ausgewertet wurde. Stencil-Objekte können kombiniert werden, um komplexere Stencil zu bilden, die aus einem Baum von Scheme-Ausdrücken des Typs Stencil bestehen.

Die stencil-Eigenschaft, die einen Grob mit seinem Stencil verbindet, ist in der grob-interface-Schnittstelle definiert.

Siehe auch

Referenz der Interna: (internals)grob-interface in Abschnitt ‘grob-interface’ in Referenz der Interna.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]

Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.

Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.