Formal Program Verification Using Symbolic Execution
Symbolic execution provides a mechanism for formally proving programs correct. A notation is introduced which allows a concise presentation of rules of inference based on symbolic execution. Using this notation, rules of inference are developed to handle a number of language features, including loop...
Gespeichert in:
Veröffentlicht in: | IEEE transactions on software engineering 1982-01, Vol.SE-8 (1), p.43-52 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | 52 |
---|---|
container_issue | 1 |
container_start_page | 43 |
container_title | IEEE transactions on software engineering |
container_volume | SE-8 |
creator | Dannenberg, R.B. Ernst, G.W. |
description | Symbolic execution provides a mechanism for formally proving programs correct. A notation is introduced which allows a concise presentation of rules of inference based on symbolic execution. Using this notation, rules of inference are developed to handle a number of language features, including loops and procedures with multiple exits. An attribute grammar is used to formally describe symbolic expression evaluation, and the treatment of function calls with side effects is shown to be straightforward. Because symbolic execution is related to program interpretation, it is an easy-to-comprehend, yet powerful technique. The rules of inference are useful in expressing the semantics of a language and form the basis of a mechanical verification condition generator. |
doi_str_mv | 10.1109/TSE.1982.234773 |
format | Article |
fullrecord | <record><control><sourceid>proquest_RIE</sourceid><recordid>TN_cdi_proquest_miscellaneous_743203425</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>1702904</ieee_id><sourcerecordid>23399152</sourcerecordid><originalsourceid>FETCH-LOGICAL-c390t-b19b556c45eaacd8e35e980d49ad8bf80c692f98492077e74c50eea3514c222b3</originalsourceid><addsrcrecordid>eNp90M9LwzAUwPEgCs7p2YOX4kFP3V5-NXlHGZsKA4VtXkOapaOjXWeygvvv7aggePCUw_u8B_kSckthRCngeLmYjihqNmJcKMXPyIAix5RLBudkAIA6lVLjJbmKcQsAUik5IGLWhNpWyXtoNsHWyYcPZVE6eyibXbKK5W6TLI513lSlS6Zf3rWnwTW5KGwV_c3POySr2XQ5eUnnb8-vk6d56jjCIc0p5lJmTkhvrVtrz6VHDWuBdq3zQoPLkBWoBTJQyivhJHhvuaTCMcZyPiSP_d19aD5bHw-mLqPzVWV3vmmjUYIz4ILJTj78KxnniFSyDt7_gdumDbvuF4Zi10dlme7QuEcuNDEGX5h9KGsbjoaCOcU2XWxzim362N3GXb9Reu9_tQKGIPg3fqR5EQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>195587668</pqid></control><display><type>article</type><title>Formal Program Verification Using Symbolic Execution</title><source>IEEE Electronic Library (IEL)</source><creator>Dannenberg, R.B. ; Ernst, G.W.</creator><creatorcontrib>Dannenberg, R.B. ; Ernst, G.W.</creatorcontrib><description>Symbolic execution provides a mechanism for formally proving programs correct. A notation is introduced which allows a concise presentation of rules of inference based on symbolic execution. Using this notation, rules of inference are developed to handle a number of language features, including loops and procedures with multiple exits. An attribute grammar is used to formally describe symbolic expression evaluation, and the treatment of function calls with side effects is shown to be straightforward. Because symbolic execution is related to program interpretation, it is an easy-to-comprehend, yet powerful technique. The rules of inference are useful in expressing the semantics of a language and form the basis of a mechanical verification condition generator.</description><identifier>ISSN: 0098-5589</identifier><identifier>EISSN: 1939-3520</identifier><identifier>DOI: 10.1109/TSE.1982.234773</identifier><identifier>CODEN: IESEDJ</identifier><language>eng</language><publisher>New York: IEEE</publisher><subject>Calculus ; Computer languages ; Computer programming ; Computer science ; Control constructs ; Engineering ; Logic ; program proving ; program verification ; Programs ; rules of inference ; side effects ; Software ; Software engineering ; symbolic execution ; Variables ; Verification ; verification conditions</subject><ispartof>IEEE transactions on software engineering, 1982-01, Vol.SE-8 (1), p.43-52</ispartof><rights>Copyright Institute of Electrical and Electronics Engineers, Inc. (IEEE) Jan 1982</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c390t-b19b556c45eaacd8e35e980d49ad8bf80c692f98492077e74c50eea3514c222b3</citedby></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/1702904$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>314,776,780,792,27901,27902,54733</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/1702904$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Dannenberg, R.B.</creatorcontrib><creatorcontrib>Ernst, G.W.</creatorcontrib><title>Formal Program Verification Using Symbolic Execution</title><title>IEEE transactions on software engineering</title><addtitle>TSE</addtitle><description>Symbolic execution provides a mechanism for formally proving programs correct. A notation is introduced which allows a concise presentation of rules of inference based on symbolic execution. Using this notation, rules of inference are developed to handle a number of language features, including loops and procedures with multiple exits. An attribute grammar is used to formally describe symbolic expression evaluation, and the treatment of function calls with side effects is shown to be straightforward. Because symbolic execution is related to program interpretation, it is an easy-to-comprehend, yet powerful technique. The rules of inference are useful in expressing the semantics of a language and form the basis of a mechanical verification condition generator.</description><subject>Calculus</subject><subject>Computer languages</subject><subject>Computer programming</subject><subject>Computer science</subject><subject>Control constructs</subject><subject>Engineering</subject><subject>Logic</subject><subject>program proving</subject><subject>program verification</subject><subject>Programs</subject><subject>rules of inference</subject><subject>side effects</subject><subject>Software</subject><subject>Software engineering</subject><subject>symbolic execution</subject><subject>Variables</subject><subject>Verification</subject><subject>verification conditions</subject><issn>0098-5589</issn><issn>1939-3520</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>1982</creationdate><recordtype>article</recordtype><sourceid>8G5</sourceid><sourceid>BENPR</sourceid><sourceid>GUQSH</sourceid><sourceid>M2O</sourceid><recordid>eNp90M9LwzAUwPEgCs7p2YOX4kFP3V5-NXlHGZsKA4VtXkOapaOjXWeygvvv7aggePCUw_u8B_kSckthRCngeLmYjihqNmJcKMXPyIAix5RLBudkAIA6lVLjJbmKcQsAUik5IGLWhNpWyXtoNsHWyYcPZVE6eyibXbKK5W6TLI513lSlS6Zf3rWnwTW5KGwV_c3POySr2XQ5eUnnb8-vk6d56jjCIc0p5lJmTkhvrVtrz6VHDWuBdq3zQoPLkBWoBTJQyivhJHhvuaTCMcZyPiSP_d19aD5bHw-mLqPzVWV3vmmjUYIz4ILJTj78KxnniFSyDt7_gdumDbvuF4Zi10dlme7QuEcuNDEGX5h9KGsbjoaCOcU2XWxzim362N3GXb9Reu9_tQKGIPg3fqR5EQ</recordid><startdate>198201</startdate><enddate>198201</enddate><creator>Dannenberg, R.B.</creator><creator>Ernst, G.W.</creator><general>IEEE</general><general>IEEE Computer Society</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7WY</scope><scope>7WZ</scope><scope>7X7</scope><scope>7XB</scope><scope>87Z</scope><scope>88E</scope><scope>88F</scope><scope>88I</scope><scope>88K</scope><scope>8AL</scope><scope>8FE</scope><scope>8FG</scope><scope>8FI</scope><scope>8FJ</scope><scope>8FK</scope><scope>8FL</scope><scope>8G5</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BEZIV</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>FRNLG</scope><scope>FYUFA</scope><scope>F~G</scope><scope>GHDGH</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K60</scope><scope>K6~</scope><scope>K7-</scope><scope>K9.</scope><scope>L.-</scope><scope>L6V</scope><scope>M0C</scope><scope>M0N</scope><scope>M0S</scope><scope>M1P</scope><scope>M1Q</scope><scope>M2O</scope><scope>M2P</scope><scope>M2T</scope><scope>M7S</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PHGZM</scope><scope>PHGZT</scope><scope>PJZUB</scope><scope>PKEHL</scope><scope>PPXIY</scope><scope>PQBIZ</scope><scope>PQBZA</scope><scope>PQEST</scope><scope>PQGLB</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>Q9U</scope><scope>7SC</scope><scope>8FD</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>7SP</scope><scope>F28</scope><scope>FR3</scope></search><sort><creationdate>198201</creationdate><title>Formal Program Verification Using Symbolic Execution</title><author>Dannenberg, R.B. ; Ernst, G.W.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c390t-b19b556c45eaacd8e35e980d49ad8bf80c692f98492077e74c50eea3514c222b3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>1982</creationdate><topic>Calculus</topic><topic>Computer languages</topic><topic>Computer programming</topic><topic>Computer science</topic><topic>Control constructs</topic><topic>Engineering</topic><topic>Logic</topic><topic>program proving</topic><topic>program verification</topic><topic>Programs</topic><topic>rules of inference</topic><topic>side effects</topic><topic>Software</topic><topic>Software engineering</topic><topic>symbolic execution</topic><topic>Variables</topic><topic>Verification</topic><topic>verification conditions</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Dannenberg, R.B.</creatorcontrib><creatorcontrib>Ernst, G.W.</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>ABI/INFORM Collection</collection><collection>ABI/INFORM Global (PDF only)</collection><collection>Health & Medical Collection</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>ABI/INFORM Global (Alumni Edition)</collection><collection>Medical Database (Alumni Edition)</collection><collection>Military Database (Alumni Edition)</collection><collection>Science Database (Alumni Edition)</collection><collection>Telecommunications (Alumni Edition)</collection><collection>Computing Database (Alumni Edition)</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Hospital Premium Collection</collection><collection>Hospital Premium Collection (Alumni Edition)</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection (Alumni Edition)</collection><collection>Research Library (Alumni Edition)</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Business Premium Collection</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>Business Premium Collection (Alumni)</collection><collection>Health Research Premium Collection</collection><collection>ABI/INFORM Global (Corporate)</collection><collection>Health Research Premium Collection (Alumni)</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Business Collection (Alumni Edition)</collection><collection>ProQuest Business Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Health & Medical Complete (Alumni)</collection><collection>ABI/INFORM Professional Advanced</collection><collection>ProQuest Engineering Collection</collection><collection>ABI/INFORM Global</collection><collection>Computing Database</collection><collection>Health & Medical Collection (Alumni Edition)</collection><collection>Medical Database</collection><collection>Military Database</collection><collection>Research Library</collection><collection>Science Database</collection><collection>Telecommunications Database</collection><collection>Engineering Database</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central (New)</collection><collection>ProQuest One Academic (New)</collection><collection>ProQuest Health & Medical Research Collection</collection><collection>ProQuest One Academic Middle East (New)</collection><collection>ProQuest One Health & Nursing</collection><collection>ProQuest One Business</collection><collection>ProQuest One Business (Alumni)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Applied & Life Sciences</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>ProQuest Central Basic</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Electronics & Communications Abstracts</collection><collection>ANTE: Abstracts in New Technology & Engineering</collection><collection>Engineering Research Database</collection><jtitle>IEEE transactions on software engineering</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Dannenberg, R.B.</au><au>Ernst, G.W.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Formal Program Verification Using Symbolic Execution</atitle><jtitle>IEEE transactions on software engineering</jtitle><stitle>TSE</stitle><date>1982-01</date><risdate>1982</risdate><volume>SE-8</volume><issue>1</issue><spage>43</spage><epage>52</epage><pages>43-52</pages><issn>0098-5589</issn><eissn>1939-3520</eissn><coden>IESEDJ</coden><abstract>Symbolic execution provides a mechanism for formally proving programs correct. A notation is introduced which allows a concise presentation of rules of inference based on symbolic execution. Using this notation, rules of inference are developed to handle a number of language features, including loops and procedures with multiple exits. An attribute grammar is used to formally describe symbolic expression evaluation, and the treatment of function calls with side effects is shown to be straightforward. Because symbolic execution is related to program interpretation, it is an easy-to-comprehend, yet powerful technique. The rules of inference are useful in expressing the semantics of a language and form the basis of a mechanical verification condition generator.</abstract><cop>New York</cop><pub>IEEE</pub><doi>10.1109/TSE.1982.234773</doi><tpages>10</tpages><oa>free_for_read</oa></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | ISSN: 0098-5589 |
ispartof | IEEE transactions on software engineering, 1982-01, Vol.SE-8 (1), p.43-52 |
issn | 0098-5589 1939-3520 |
language | eng |
recordid | cdi_proquest_miscellaneous_743203425 |
source | IEEE Electronic Library (IEL) |
subjects | Calculus Computer languages Computer programming Computer science Control constructs Engineering Logic program proving program verification Programs rules of inference side effects Software Software engineering symbolic execution Variables Verification verification conditions |
title | Formal Program Verification Using Symbolic Execution |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-15T16%3A17%3A21IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_RIE&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Formal%20Program%20Verification%20Using%20Symbolic%20Execution&rft.jtitle=IEEE%20transactions%20on%20software%20engineering&rft.au=Dannenberg,%20R.B.&rft.date=1982-01&rft.volume=SE-8&rft.issue=1&rft.spage=43&rft.epage=52&rft.pages=43-52&rft.issn=0098-5589&rft.eissn=1939-3520&rft.coden=IESEDJ&rft_id=info:doi/10.1109/TSE.1982.234773&rft_dat=%3Cproquest_RIE%3E23399152%3C/proquest_RIE%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=195587668&rft_id=info:pmid/&rft_ieee_id=1702904&rfr_iscdi=true |