Je suis sur le point de mettre en œuvre un langage spécifique au domaine pour la représentation des conventions d'apprentissage social. Une partie de l'implémentation est une description formelle d'un langage - son «calcul», ses symboles et ses expressions logiques.
Mon approche serait de décrire le langage en décrivant sa grammaire mais il y a aussi des concepts tels que les relations, les dialogues, les attentes qui nécessitent une approche plus théorique et la description de la logique.
Je voudrais demander un exemple et une recommandation de littérature (articles, livres) qui pourraient m'aider dans cette description. Je me sens relativement compétent dans l'approche de cette tâche, donc je ne demande pas une prise en main totale, mais l'aide d'un théoricien dans ce domaine serait grandement appréciée.
Réponses:
Vous devrez décrire deux parties de la sémantique:
sémantique statique : structure de programmes bien formés
sémantique dynamique : signification de l'exécution de programmations
La sémantique statique prend généralement la forme de systèmes de types. Je recommanderais de regarder les livres de Benjamin C Pierce et Robert Harper . Alternativement, vous pouvez écrire les règles des programmes bien formés sous forme d'un ensemble de déclarations (formelles ou informelles) décrivant les conditions de validité de votre programme. L'approche formelle adoptée par les systèmes de types fournit un cadre bien connu pour de telles spécifications.
Il existe de nombreux formalismes pour exprimer la sémantique dynamique à considérer comme base:
Il devrait y avoir beaucoup de livres sur ces sujets. Une bonne introduction générale est Nielson et Nielson's Semantics with Applications . Une version téléchargeable est disponible sur le site des auteurs . Il existe également une nouvelle édition, mais je ne l'ai pas vue.
Dans chacun d'eux, il y a des choix à faire. Par exemple, si vous décidez d'utiliser la sémantique opérationnelle, il y a la sémantique à grand pas, la sémantique à petit pas, la sémantique basée sur des systèmes de transition étiquetés, la sémantique basée sur la logique de réécriture.
Dans Composer des contrats: une aventure en ingénierie financière , Simon Peyton Jones et al donne une sémantique dénotationnelle à une DSL financière.
La sémantique dénotationnelle et statique d'un langage spécifique au domaine pour la conception de réseaux de flux par Assaf Kfoury présente une sémantique dénotationnelle pour un réseau de flux DSL
La thèse d'Andrei Lapets sur la sémantique algébrique des langages spécifiques à un domaine traite de la sémantique algébrique des DSL.
Il y en a beaucoup plus: ceci , cela , l' un en termes de machines abstraites , l' autre .
Le type d'approche à adopter dépend du type de langage utilisé pour votre DSL, du type d'expérience que vous avez dans la conception de sémantique et de vos préférences personnelles.
Sans aucun détail concret, je ne peux pas aider davantage.
la source