Modular Machine Code Verification

Formally establishing safety properties of software presents a grand challenge to the computer science community. Producing proof-carrying code, i.e., machine code with machine-checkable specifications and proofs, is particularly difficult for system softwares written in low-level languages. One cen...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Ni, Zhaozhong
Format: Report
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Ni, Zhaozhong
description Formally establishing safety properties of software presents a grand challenge to the computer science community. Producing proof-carrying code, i.e., machine code with machine-checkable specifications and proofs, is particularly difficult for system softwares written in low-level languages. One central problem is the lack of verification theories that can handle the expressive power of low-level code in a modular fashion. In particular, traditional type- and logic-based verification approaches have restrictions on either expressive power or modularity. This dissertation presents XCAP, a logic-based proof-carrying code framework for modular machine code verification. In XCAP, program specifications are written as general logic predicates, in which syntactic constructs are used to modularly specify some crucial higher-order programming concepts for system code, including embedded code pointers, impredicative polymorphisms, recursive invariants, and general references, all in a logical setting. Thus, XCAP achieves the expressive power of logic-based approaches and the modularity of type-based approaches. Its meta theory has been completely mechanized and proved. XCAP can be used to directly certify system kernel code. This dissertation contains a mini certified thread library written in x86 assembly. Every single instruction in the library, including those for context switching and thread scheduling, has a formal XCAP specification and a proof. XCAP is also connected to existing certifying compiler; a typepreserving translation from a typed assembly language to XCAP is included. Sponsored in part by NSF grant CCR-9901011, CCR-0081590, and CCR-0524545
format Report
fullrecord <record><control><sourceid>dtic_1RU</sourceid><recordid>TN_cdi_dtic_stinet_ADA478745</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>ADA478745</sourcerecordid><originalsourceid>FETCH-dtic_stinet_ADA4787453</originalsourceid><addsrcrecordid>eNrjZFD0zU8pzUksUvBNTM7IzEtVcM5PSVUISy3KTMtMTizJzM_jYWBNS8wpTuWF0twMMm6uIc4euiklmcnxxSVATSXxji6OJuYW5iamxgSkAe89IpE</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>report</recordtype></control><display><type>report</type><title>Modular Machine Code Verification</title><source>DTIC Technical Reports</source><creator>Ni, Zhaozhong</creator><creatorcontrib>Ni, Zhaozhong ; YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE</creatorcontrib><description>Formally establishing safety properties of software presents a grand challenge to the computer science community. Producing proof-carrying code, i.e., machine code with machine-checkable specifications and proofs, is particularly difficult for system softwares written in low-level languages. One central problem is the lack of verification theories that can handle the expressive power of low-level code in a modular fashion. In particular, traditional type- and logic-based verification approaches have restrictions on either expressive power or modularity. This dissertation presents XCAP, a logic-based proof-carrying code framework for modular machine code verification. In XCAP, program specifications are written as general logic predicates, in which syntactic constructs are used to modularly specify some crucial higher-order programming concepts for system code, including embedded code pointers, impredicative polymorphisms, recursive invariants, and general references, all in a logical setting. Thus, XCAP achieves the expressive power of logic-based approaches and the modularity of type-based approaches. Its meta theory has been completely mechanized and proved. XCAP can be used to directly certify system kernel code. This dissertation contains a mini certified thread library written in x86 assembly. Every single instruction in the library, including those for context switching and thread scheduling, has a formal XCAP specification and a proof. XCAP is also connected to existing certifying compiler; a typepreserving translation from a typed assembly language to XCAP is included. Sponsored in part by NSF grant CCR-9901011, CCR-0081590, and CCR-0524545</description><language>eng</language><subject>ASSEMBLY LANGUAGES ; CODING ; COMMUNITIES ; COMPILERS ; Computer Programming and Software ; COMPUTER PROGRAMS ; COMPUTERS ; INSTRUCTIONS ; LANGUAGE ; LIBRARIES ; LOGIC ; LOW LEVEL ; MACHINE CODING ; MODULAR CONSTRUCTION ; POLYMORPHISM ; POWER ; SAFETY ; SCHEDULING ; SPECIFICATIONS ; Structural Engineering and Building Technology ; SWITCHING ; THEORY ; VERIFICATION</subject><creationdate>2007</creationdate><rights>Approved for public release; distribution is unlimited.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>230,780,885,27565,27566</link.rule.ids><linktorsrc>$$Uhttps://apps.dtic.mil/sti/citations/ADA478745$$EView_record_in_DTIC$$FView_record_in_$$GDTIC$$Hfree_for_read</linktorsrc></links><search><creatorcontrib>Ni, Zhaozhong</creatorcontrib><creatorcontrib>YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE</creatorcontrib><title>Modular Machine Code Verification</title><description>Formally establishing safety properties of software presents a grand challenge to the computer science community. Producing proof-carrying code, i.e., machine code with machine-checkable specifications and proofs, is particularly difficult for system softwares written in low-level languages. One central problem is the lack of verification theories that can handle the expressive power of low-level code in a modular fashion. In particular, traditional type- and logic-based verification approaches have restrictions on either expressive power or modularity. This dissertation presents XCAP, a logic-based proof-carrying code framework for modular machine code verification. In XCAP, program specifications are written as general logic predicates, in which syntactic constructs are used to modularly specify some crucial higher-order programming concepts for system code, including embedded code pointers, impredicative polymorphisms, recursive invariants, and general references, all in a logical setting. Thus, XCAP achieves the expressive power of logic-based approaches and the modularity of type-based approaches. Its meta theory has been completely mechanized and proved. XCAP can be used to directly certify system kernel code. This dissertation contains a mini certified thread library written in x86 assembly. Every single instruction in the library, including those for context switching and thread scheduling, has a formal XCAP specification and a proof. XCAP is also connected to existing certifying compiler; a typepreserving translation from a typed assembly language to XCAP is included. Sponsored in part by NSF grant CCR-9901011, CCR-0081590, and CCR-0524545</description><subject>ASSEMBLY LANGUAGES</subject><subject>CODING</subject><subject>COMMUNITIES</subject><subject>COMPILERS</subject><subject>Computer Programming and Software</subject><subject>COMPUTER PROGRAMS</subject><subject>COMPUTERS</subject><subject>INSTRUCTIONS</subject><subject>LANGUAGE</subject><subject>LIBRARIES</subject><subject>LOGIC</subject><subject>LOW LEVEL</subject><subject>MACHINE CODING</subject><subject>MODULAR CONSTRUCTION</subject><subject>POLYMORPHISM</subject><subject>POWER</subject><subject>SAFETY</subject><subject>SCHEDULING</subject><subject>SPECIFICATIONS</subject><subject>Structural Engineering and Building Technology</subject><subject>SWITCHING</subject><subject>THEORY</subject><subject>VERIFICATION</subject><fulltext>true</fulltext><rsrctype>report</rsrctype><creationdate>2007</creationdate><recordtype>report</recordtype><sourceid>1RU</sourceid><recordid>eNrjZFD0zU8pzUksUvBNTM7IzEtVcM5PSVUISy3KTMtMTizJzM_jYWBNS8wpTuWF0twMMm6uIc4euiklmcnxxSVATSXxji6OJuYW5iamxgSkAe89IpE</recordid><startdate>200705</startdate><enddate>200705</enddate><creator>Ni, Zhaozhong</creator><scope>1RU</scope><scope>BHM</scope></search><sort><creationdate>200705</creationdate><title>Modular Machine Code Verification</title><author>Ni, Zhaozhong</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-dtic_stinet_ADA4787453</frbrgroupid><rsrctype>reports</rsrctype><prefilter>reports</prefilter><language>eng</language><creationdate>2007</creationdate><topic>ASSEMBLY LANGUAGES</topic><topic>CODING</topic><topic>COMMUNITIES</topic><topic>COMPILERS</topic><topic>Computer Programming and Software</topic><topic>COMPUTER PROGRAMS</topic><topic>COMPUTERS</topic><topic>INSTRUCTIONS</topic><topic>LANGUAGE</topic><topic>LIBRARIES</topic><topic>LOGIC</topic><topic>LOW LEVEL</topic><topic>MACHINE CODING</topic><topic>MODULAR CONSTRUCTION</topic><topic>POLYMORPHISM</topic><topic>POWER</topic><topic>SAFETY</topic><topic>SCHEDULING</topic><topic>SPECIFICATIONS</topic><topic>Structural Engineering and Building Technology</topic><topic>SWITCHING</topic><topic>THEORY</topic><topic>VERIFICATION</topic><toplevel>online_resources</toplevel><creatorcontrib>Ni, Zhaozhong</creatorcontrib><creatorcontrib>YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE</creatorcontrib><collection>DTIC Technical Reports</collection><collection>DTIC STINET</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Ni, Zhaozhong</au><aucorp>YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE</aucorp><format>book</format><genre>unknown</genre><ristype>RPRT</ristype><btitle>Modular Machine Code Verification</btitle><date>2007-05</date><risdate>2007</risdate><abstract>Formally establishing safety properties of software presents a grand challenge to the computer science community. Producing proof-carrying code, i.e., machine code with machine-checkable specifications and proofs, is particularly difficult for system softwares written in low-level languages. One central problem is the lack of verification theories that can handle the expressive power of low-level code in a modular fashion. In particular, traditional type- and logic-based verification approaches have restrictions on either expressive power or modularity. This dissertation presents XCAP, a logic-based proof-carrying code framework for modular machine code verification. In XCAP, program specifications are written as general logic predicates, in which syntactic constructs are used to modularly specify some crucial higher-order programming concepts for system code, including embedded code pointers, impredicative polymorphisms, recursive invariants, and general references, all in a logical setting. Thus, XCAP achieves the expressive power of logic-based approaches and the modularity of type-based approaches. Its meta theory has been completely mechanized and proved. XCAP can be used to directly certify system kernel code. This dissertation contains a mini certified thread library written in x86 assembly. Every single instruction in the library, including those for context switching and thread scheduling, has a formal XCAP specification and a proof. XCAP is also connected to existing certifying compiler; a typepreserving translation from a typed assembly language to XCAP is included. Sponsored in part by NSF grant CCR-9901011, CCR-0081590, and CCR-0524545</abstract><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier
ispartof
issn
language eng
recordid cdi_dtic_stinet_ADA478745
source DTIC Technical Reports
subjects ASSEMBLY LANGUAGES
CODING
COMMUNITIES
COMPILERS
Computer Programming and Software
COMPUTER PROGRAMS
COMPUTERS
INSTRUCTIONS
LANGUAGE
LIBRARIES
LOGIC
LOW LEVEL
MACHINE CODING
MODULAR CONSTRUCTION
POLYMORPHISM
POWER
SAFETY
SCHEDULING
SPECIFICATIONS
Structural Engineering and Building Technology
SWITCHING
THEORY
VERIFICATION
title Modular Machine Code Verification
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-14T14%3A58%3A41IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-dtic_1RU&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=unknown&rft.btitle=Modular%20Machine%20Code%20Verification&rft.au=Ni,%20Zhaozhong&rft.aucorp=YALE%20UNIV%20NEW%20HAVEN%20CT%20DEPT%20OF%20COMPUTER%20SCIENCE&rft.date=2007-05&rft_id=info:doi/&rft_dat=%3Cdtic_1RU%3EADA478745%3C/dtic_1RU%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true