Domain Specific Language

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


Un Domain Specific Language è un minilinguaggio adatto ad un problema specifico.

Ad esempio, SQL non è un linguaggio di programmazione pensato per essere usato in qualsiasi situazione. A nessuno verrebbe in mente di fare text processing o calcoli differenziali in SQL. Ma allo stesso tempo questo linguaggio è ottimo per il suo scopo specifico, che è quello di fare interrogazioni su database.

L’ideale sarebbe avere un linguaggio di questo tipo per ogni scopo, ma senza il problema di dover ogni volta imparare da zero. D’altronde il cuore della programmazione è costruire degli strumenti che permettano di risolvere un problema, ed un linguaggio è lo strumento per eccellenza.

Ruby è perfetto per la costruzione di semplici DSL da utilizzare all’interno della proprio applicazione, grazie alla sua sintassi ed alle sue funzionalità di metaprogrammazione.

Ad esempio, ActiveRecord ha un minilinguaggio dedicato alla definizione di un modello ad oggetti che rispecchi quello relazionale nel database:

class Recipe
 has_one  :name
 has_many :ingredients
end

Un’introduzione simpatica è quella dedicata alla creazione di creature per un dungeon virtuale , e per chi vuole qualcosa di più serio ci sono le slide di una presentazione sull’argomento all’ultima rubyconf.

In italiano potete dare un’occhiata alla pagina del cookbook Metodi che sembrano keyword

Updated on January 16, 2006 15:20 by Ruby Fan (151.37.149.121)