Informazioni sul servizio
TradottoSono uno sviluppatore Standard ML e scrivo codice che deve essere corretto: compilatori, interpreti, analizzatori statici, linguaggi specifici per dominio e strumenti che supportano il ragionamento formale. Lavoro specificamente nella famiglia ML — SML/NJ per sviluppo interattivo e prototipazione rapida, MLton per ottimizzazione dell'intero programma e binari nativi veloci, Poly/ML dove è necessario un REPL reattivo su una grande base di codice. Questo non è Haskell, OCaml o F#, ma Standard ML con la sua precisa definizione formale, tipi algebrici, corrispondenza di pattern esaustiva e, cosa cruciale, un potente sistema di moduli di strutture, firme e funzioni che ti consente di assemblare grandi sistemi fedeli alle loro interfacce.
Il mio lavoro quotidiano consiste nel trasformare grammatica o semantica in codice funzionante e manutenibile. Progetto sintassi astratta, scrivo lessici e parser, costruisco passaggi di controllo dei tipi e di elaborazione, abbasso tutto a rappresentazioni intermedie e genero o interpreto risultati. Mi interessa rendere stati non validi non rappresentabili: inserisco invarianti nel sistema di tipi in modo che il compilatore elimini intere classi di errori prima del primo test. Quando la correttezza deve essere dimostrata piuttosto che semplicemente controllata, collego il codice SML con sistemi di prova e strumenti di specifica, scrivo test basati su proprietà e interpreti di riferimento per definire il comportamento in modo preciso.
Mi sento a mio agio nell'unirmi a un gruppo di ricerca, a un team linguistico o a un'azienda che ha ereditato un sistema SML maturo e ha bisogno di qualcuno che si senta a casa in esso. Leggo i funzioni di altre persone, districo firme complesse, aggiungo funzionalità senza rompere i confini di astrazione e documento il ragionamento in modo che la prossima persona possa seguirlo. Dimmi quale linguaggio, invariante o passaggio hai bisogno, e ti fornirò un Standard ML pulito, tipizzato e ben strutturato su cui puoi contare.
— Compilatori e interpreti su SML/NJ, MLton, Poly/ML
— Lessici, parser, controllo dei tipi e passaggi di elaborazione
— Progettazione di moduli: strutture, firme e funzioni
— Linguaggi specifici per dominio e interpreti embedded
— Test basati su proprietà e validazione dell'interprete di riferimento
— Ragionamento formale, specifiche e integrazione del provatore
— Refactoring e manutenzione del codice Standard ML ereditato
Il mio lavoro quotidiano consiste nel trasformare grammatica o semantica in codice funzionante e manutenibile. Progetto sintassi astratta, scrivo lessici e parser, costruisco passaggi di controllo dei tipi e di elaborazione, abbasso tutto a rappresentazioni intermedie e genero o interpreto risultati. Mi interessa rendere stati non validi non rappresentabili: inserisco invarianti nel sistema di tipi in modo che il compilatore elimini intere classi di errori prima del primo test. Quando la correttezza deve essere dimostrata piuttosto che semplicemente controllata, collego il codice SML con sistemi di prova e strumenti di specifica, scrivo test basati su proprietà e interpreti di riferimento per definire il comportamento in modo preciso.
Mi sento a mio agio nell'unirmi a un gruppo di ricerca, a un team linguistico o a un'azienda che ha ereditato un sistema SML maturo e ha bisogno di qualcuno che si senta a casa in esso. Leggo i funzioni di altre persone, districo firme complesse, aggiungo funzionalità senza rompere i confini di astrazione e documento il ragionamento in modo che la prossima persona possa seguirlo. Dimmi quale linguaggio, invariante o passaggio hai bisogno, e ti fornirò un Standard ML pulito, tipizzato e ben strutturato su cui puoi contare.
— Compilatori e interpreti su SML/NJ, MLton, Poly/ML
— Lessici, parser, controllo dei tipi e passaggi di elaborazione
— Progettazione di moduli: strutture, firme e funzioni
— Linguaggi specifici per dominio e interpreti embedded
— Test basati su proprietà e validazione dell'interprete di riferimento
— Ragionamento formale, specifiche e integrazione del provatore
— Refactoring e manutenzione del codice Standard ML ereditato