Estoy a punto de implementar un lenguaje de dominio específico para la representación de convenciones de aprendizaje social. Parte de la implementación es una descripción formal de un lenguaje: su 'cálculo', símbolos y expresiones lógicas.
Mi enfoque sería describir el lenguaje describiendo su gramática, pero también hay conceptos como relaciones, diálogos, expectativas que requieren un enfoque más teórico y la descripción de la lógica.
Me gustaría pedir un ejemplo y una recomendación de literatura (documentos, libros) que me ayudaría con esta descripción. Me siento relativamente competente al abordar esta tarea, así que no estoy pidiendo una mano total, pero la ayuda de un teórico en esta área sería muy apreciada.
Respuestas:
Hay dos partes de la semántica que deberá describir:
semántica estática : estructura de programas bien formados
semántica dinámica : significado de ejecutar programaciones
La semántica estática generalmente toma la forma de sistemas de tipos. Recomiendo mirar los libros de Benjamin C Pierce y Robert Harper . Alternativamente, puede escribir las reglas de programas bien formados como una colección de declaraciones (formales o informales) que describen las condiciones de validez de su programa. El enfoque formal adoptado por los sistemas de tipos proporciona un marco bien conocido para tales especificaciones.
Hay muchos formalismos para expresar la semántica dinámica a considerar como base:
Debería haber muchos libros sobre estos temas. Una buena introducción introductoria es la semántica con aplicaciones de Nielson y Nielson . Una versión descargable está disponible en el sitio de los autores . También hay una edición más nueva, pero no la he visto.
Dentro de cada uno de estos, hay que tomar decisiones. Por ejemplo, si decide utilizar la semántica operativa, hay semántica de pasos grandes, semántica de pasos pequeños, semántica basada en sistemas de transición etiquetados, semántica basada en lógica de reescritura.
En la redacción de contratos: una aventura en ingeniería financiera , Simon Peyton Jones et al da semántica denotacional a un DSL financiero.
La semántica denotacional y estática de un lenguaje específico de dominio para el diseño de redes de flujo por Assaf Kfoury presenta una semántica denotacional para una red de flujo DSL
La tesis de Andrei Lapets La semántica algebraica de los lenguajes específicos de dominio analiza la semántica algebraica de las DSL.
Hay muchos más: esto , aquello , uno en términos de máquinas abstractas , otro .
El tipo de enfoque que debe adoptar dependerá de qué tipo de lenguaje sea su DSL, qué tipo de experiencia tenga con el diseño de la semántica y sus preferencias personales.
Sin ningún detalle concreto, no puedo ayudar más.
fuente