K è un framework semantico modificabile basato sulla riscrittura in cui è possibile definire linguaggi di programmazione, sistemi tipografici e strumenti di analisi formale utilizzando configurazioni, calcoli e regole. Le configurazioni organizzano ilstato in unità chiamate celle, che sono etichettate e possono essere nidificate.I calcoli portano il significato computazionale come liststructures annidate speciali che sequenzializzano compiti computazionali, come frammenti ofprogram. I calcoli estendono la sintassi astratta della lingua originale.Le regole K (rewrite) rendono esplicite le parti del termine theyread-only, write-only, read-write o non si preoccupano. Questo rende adatto per definire linguaggi veramente concorrenti anche in presenza di condivisione. I calcoli sono come qualsiasi altro termine nell’ambiente di arewriting: possono essere abbinati, spostati da un luogo all’altro, modificati o cancellati. Ciò rende K adatto per la definizione di funzionalità ad alta intensità di controllo come la terminazione brusca, eccezioni orcall/cc.
Panoramica
- Una presentazione video panoramica di dieci minuti.
- Un video tutorial di novanta minuti, dato a ETAPS ‘ 16.
- Un’intervista di alto livello sulla semantica basata sulla riscrittura (Wolfram Schulte intervista Grigore Rosu all’ICSE’11.
- FAQ
K Tool Download
- I binari dello strumento K forniti sono supportati su Linux, OS X e Windows. Altre piattaforme potrebbero funzionare correttamente o meno. Accogliamo con favore informazioni sull’usabilità di piattaforme non supportate o bug nelle piattaforme supportate.
- Prova la nostra pagina di supporto Editor per i collegamenti alle definizioni di evidenziazione della sintassi K per vari editor/IDE popolari. Non esitate a contribuire.
- Il codice sorgente (Java) è disponibile su GitHub, dove puoi anche segnalare bug (per favore fallo).
Impara K
- Fai il tutorial di K!
- Leggi alcuni articoli su K sul Formal Systems Laboratory (FSL).
- Documentazione utente
- Builtins
Collegamenti
- Pagina web K e matching logic presso UIUC (USA).
- K pagina web a UAIC (Romania).
- Corrispondente pagina web logica a UIUC (USA).
- Canale di discussione K online per gli utenti K (Slack & Riot). Questo è il modo consigliato per porre domande su K e interagire con la comunità K.
- Stackoverflow per domande generali alla comunità di utenti K (usa il canale sopra se vuoi risposte rapide).