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...
Gespeichert in:
1. Verfasser: | |
---|---|
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 |