El formato de la entrada

Como se discutió anteriormente, el formato de entrada ideal para un sistema de grabado musical es el contenido: la propia música. Esto plantea un problema formidable: ¿cómo definimos qué es la música realmente? Nuestra salida de este problema es darle la vuelta. En lugar de definir lo que es la música, nuestro programa sirve de definición: escribimos un programa capaz de producir música impresa y ajustamos el formato para que sea tan escueto como sea posible. Cuando el formato no se puede recortar más, por definición nos quedamos con el contenido en sí.

La sintaxis es también la interfase de usuario de LilyPond, por lo tanto es fácil escribir, por ejemplo:

  c'4 d'8
Son un Do central negra y un Re corchea, como en este ejemplo:

A una escala microscópica, tal sintaxis es fácil de usar. En una escala mayor, la sintaxis también necesita una estructura. ¿De qué otra manera podemos escribir piezas complejas como sinfonías u óperas? La estructura se forma mediante el concepto de expresiones musicales: al combinar pequeños fragmentos en segmentos de mayor tamaño, se puede expresar música de mayor complejidad. Por ejemplo:
c4

Combine esto simultáneamente con otras dos notas al encerrarlo entre << y >>.
  <<c4 d4 e4>>
Esta expresión se pone en secuencia al encerrarla entre llaves, esto es:
   { <<c4 d4 e4>> f4  }
Lo anterior es otra expresión y por lo tanto se puede volver a combinar con una expresión simultánea (en este caso, una blanca).
<< { <<c4 d4 e4>> f4 } g2 >> 

Estructuras recursivas como ésta se pueden especificar formalmente y de manera clara en una gramática independiente del contexto. El código de análisis también se genera a partir de esta gramática. En otras palabras, la sintaxis de LilyPond está definida claramente y sin ambigüedades.

Las interfases de usuario y la sintaxis son con lo que la gente tiene que tratar la mayor parte del tiempo. Son en parte una cuestión de gusto, y también un tema sujeto a mucha discusión. Aún cuando las discusiones sobre el gusto tienen su mérito, no son muy productivas. En el contexto mayor de LilyPond, la importancia de la sintaxis de entrada es pequeña: inventar una sintaxis nítida es sencillo, pero escribir un código decente para formatear es mucho más complicado. Esto se puede ilustrar por el número de líneas de los componentes respectivos del software: el análisis sintáctico y la representación se llevan menos de 10% del código.
Análisis y representaciónTotal
6000 líneas de código C++ 61500 líneas de código C++

Siguiente: resumiendo, la conclusión.


Inicio > Acerca de > Ensayo

Otros idiomas: English, Deutsch, Français
Acerca de la selección automática de idioma.