OPERATING SYSTEM SUPPORT FOR CONTRACTS

A front-end compiler compiles source code into intermediate code, that may later be compiled into binary code. The source code defines an execution scope and includes a contract. When a contract is encountered at runtime of an execution scope, further execution of that execution scope is conditioned...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: BARNETT, MICHAEL, TAILLEFER, MARTIN, PARSONS, JARED PORTER, GORDON, COLIN STEBBINS, BARTOLOMEO, DAVID ALLEN, DUFFY, JOHN J, BROMFIELD, ALEXANDER DANIEL
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:A front-end compiler compiles source code into intermediate code, that may later be compiled into binary code. The source code defines an execution scope and includes a contract. When a contract is encountered at runtime of an execution scope, further execution of that execution scope is conditioned on whether a predicate associated with the contract is true. The front-end compiler operates so as to preserve the contract so that the contract continues to be semantically structured such that the predicate may be removed from the intermediate language code. The contract may thus continue to be understood by semantic analysis of the contract. Thus, the predicate may be understood by static analysis tools that operate on the intermediate code. Selon l'invention, un compilateur frontal compile un code source en un code intermédiaire, qui peut être compilé plus tard en code binaire. Le code source définit un cadre d'exécution et comprend un contrat. Lorsqu'un contrat est rencontré pendant le temps d'exécution d'un cadre d'exécution, ce cadre d'exécution continue d'être exécuté à la condition qu'un prédicat associé au contrat soit vrai. Le compilateur frontal fonctionne de façon à préserver le contrat pour que le contrat continue d'être structuré sémantiquement de façon que le prédicat puisse être enlevé du code en langage intermédiaire. Le contrat peut ainsi continuer d'être compris par l'analyse sémantique du contrat. Ainsi, le prédicat peut être compris par des outils d'analyse statique qui fonctionnent sur le code intermédiaire.