Acerca del servicio
TraducidoSoy un desarrollador de Standard ML y escribo código que debe ser correcto: compiladores, intérpretes, analizadores estáticos, lenguajes específicos de dominio y herramientas que apoyan el razonamiento formal. Trabajo específicamente en la familia ML — SML/NJ para desarrollo interactivo y prototipado rápido, MLton para optimización de programas completos y binarios nativos rápidos, Poly/ML donde se necesita un REPL receptivo sobre una gran base de código. Esto no es Haskell, OCaml o F#, sino Standard ML con su definición formal precisa, tipos algebraicos, coincidencia de patrones exhaustiva y, crucialmente, un poderoso sistema de módulos de estructuras, firmas y funtores que te permite ensamblar grandes sistemas fieles a sus interfaces.
Mi trabajo diario consiste en convertir gramática o semántica en código funcional y mantenible. Diseño sintaxis abstracta, escribo analizadores léxicos y sintácticos, construyo verificaciones de tipos y pasos de elaboración, reduzco todo a representaciones intermedias y genero o interpreto resultados. Me importa hacer que los estados inválidos sean irrepresentables: incorporo invariantes en el sistema de tipos para que el compilador elimine clases enteras de errores antes de la primera prueba. Cuando la corrección debe ser probada en lugar de solo verificada, vinculo el código SML con sistemas de prueba y herramientas de especificación, escribo pruebas basadas en propiedades e intérpretes de referencia para definir el comportamiento con precisión.
Me siento cómodo uniéndome a un grupo de investigación, equipo de lenguaje o empresa que heredó un sistema SML maduro y necesita a alguien que se sienta en casa en él. Leo los funtores de otras personas, desenredo firmas complejas, añado características sin romper los límites de abstracción y documento el razonamiento para que la próxima persona pueda seguirlo. Dime qué lenguaje, invariante o paso necesitas, y te daré un Standard ML limpio, tipado y bien estructurado en el que puedes confiar.
— Compiladores e intérpretes en SML/NJ, MLton, Poly/ML
— Analizadores léxicos, sintácticos, verificación de tipos y pasos de elaboración
— Diseño de módulos: estructuras, firmas y funtores
— Lenguajes específicos de dominio e intérpretes embebidos
— Pruebas basadas en propiedades y validación de intérpretes de referencia
— Razonamiento formal, especificaciones e integración de probadores
— Refactorización y mantenimiento de código Standard ML heredado
Mi trabajo diario consiste en convertir gramática o semántica en código funcional y mantenible. Diseño sintaxis abstracta, escribo analizadores léxicos y sintácticos, construyo verificaciones de tipos y pasos de elaboración, reduzco todo a representaciones intermedias y genero o interpreto resultados. Me importa hacer que los estados inválidos sean irrepresentables: incorporo invariantes en el sistema de tipos para que el compilador elimine clases enteras de errores antes de la primera prueba. Cuando la corrección debe ser probada en lugar de solo verificada, vinculo el código SML con sistemas de prueba y herramientas de especificación, escribo pruebas basadas en propiedades e intérpretes de referencia para definir el comportamiento con precisión.
Me siento cómodo uniéndome a un grupo de investigación, equipo de lenguaje o empresa que heredó un sistema SML maduro y necesita a alguien que se sienta en casa en él. Leo los funtores de otras personas, desenredo firmas complejas, añado características sin romper los límites de abstracción y documento el razonamiento para que la próxima persona pueda seguirlo. Dime qué lenguaje, invariante o paso necesitas, y te daré un Standard ML limpio, tipado y bien estructurado en el que puedes confiar.
— Compiladores e intérpretes en SML/NJ, MLton, Poly/ML
— Analizadores léxicos, sintácticos, verificación de tipos y pasos de elaboración
— Diseño de módulos: estructuras, firmas y funtores
— Lenguajes específicos de dominio e intérpretes embebidos
— Pruebas basadas en propiedades y validación de intérpretes de referencia
— Razonamiento formal, especificaciones e integración de probadores
— Refactorización y mantenimiento de código Standard ML heredado