Dijkstra Graphs
We revisit a concept that has been central in some early stages of computer science, that of structured programming: a set of rules that an algorithm must follow in order to acquire a structure that is desirable in many aspects. While much has been written about structured programming, an important...
Gespeichert in:
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 | |
---|---|
container_issue | |
container_start_page | |
container_title | |
container_volume | |
creator | Bento, Lucila M. S Boccardo, Davidson R Machado, Raphael C. S Miyazawa, Flávio K de Sá, Vinícius G. Pereira Szwarcfiter, Jayme L |
description | We revisit a concept that has been central in some early stages of computer
science, that of structured programming: a set of rules that an algorithm must
follow in order to acquire a structure that is desirable in many aspects. While
much has been written about structured programming, an important issue has been
left unanswered: given an arbitrary, compiled program, describe an algorithm to
decide whether or not it is structured, that is, whether it conforms to the
stated principles of structured programming. We refer to the classical concept
of structured programming, as described by Dijkstra. By employing a graph model
and graph-theoretic techniques, we formulate an efficient algorithm for
answering this question. To do so, we first introduce the class of graphs which
correspond to structured programs, which we call Dijkstra Graphs. Our problem
then becomes the recognition of such graphs, for which we present a greedy
$O(n)$-time algorithm. Furthermore, we describe an isomorphism algorithm for
Dijkstra graphs, whose complexity is also linear in the number of vertices of
the graph. Both the recognition and isomorphism algorithms have potential
important applications, such as in code similarity analysis. |
doi_str_mv | 10.48550/arxiv.1602.08653 |
format | Article |
fullrecord | <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_1602_08653</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1602_08653</sourcerecordid><originalsourceid>FETCH-LOGICAL-a673-bd789253a918a3cdce1b7551ca140f73eed94a1cc7e3f8e916cfd4460d51d4ce3</originalsourceid><addsrcrecordid>eNotzrkKwkAUQNFpLCSKtZX-QOK8zF5KXCFgkz68zIJxgTAR0b8Xo9XtLoeQOdCMayHoCuOrfWYgaZ5RLQUbk9mmvVz7R8TlPmJ37idkFPDW--m_Cal226o4pOVpfyzWZYpSsbRxSptcMDSgkVlnPTRKCLAInAbFvHeGI1irPAvaG5A2OM4ldQIct54lZPHbDqK6i-0d47v-yupBxj5JDDIY</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Dijkstra Graphs</title><source>arXiv.org</source><creator>Bento, Lucila M. S ; Boccardo, Davidson R ; Machado, Raphael C. S ; Miyazawa, Flávio K ; de Sá, Vinícius G. Pereira ; Szwarcfiter, Jayme L</creator><creatorcontrib>Bento, Lucila M. S ; Boccardo, Davidson R ; Machado, Raphael C. S ; Miyazawa, Flávio K ; de Sá, Vinícius G. Pereira ; Szwarcfiter, Jayme L</creatorcontrib><description>We revisit a concept that has been central in some early stages of computer
science, that of structured programming: a set of rules that an algorithm must
follow in order to acquire a structure that is desirable in many aspects. While
much has been written about structured programming, an important issue has been
left unanswered: given an arbitrary, compiled program, describe an algorithm to
decide whether or not it is structured, that is, whether it conforms to the
stated principles of structured programming. We refer to the classical concept
of structured programming, as described by Dijkstra. By employing a graph model
and graph-theoretic techniques, we formulate an efficient algorithm for
answering this question. To do so, we first introduce the class of graphs which
correspond to structured programs, which we call Dijkstra Graphs. Our problem
then becomes the recognition of such graphs, for which we present a greedy
$O(n)$-time algorithm. Furthermore, we describe an isomorphism algorithm for
Dijkstra graphs, whose complexity is also linear in the number of vertices of
the graph. Both the recognition and isomorphism algorithms have potential
important applications, such as in code similarity analysis.</description><identifier>DOI: 10.48550/arxiv.1602.08653</identifier><language>eng</language><subject>Computer Science - Discrete Mathematics</subject><creationdate>2016-02</creationdate><rights>http://arxiv.org/licenses/nonexclusive-distrib/1.0</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>228,230,780,885</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/1602.08653$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.1602.08653$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Bento, Lucila M. S</creatorcontrib><creatorcontrib>Boccardo, Davidson R</creatorcontrib><creatorcontrib>Machado, Raphael C. S</creatorcontrib><creatorcontrib>Miyazawa, Flávio K</creatorcontrib><creatorcontrib>de Sá, Vinícius G. Pereira</creatorcontrib><creatorcontrib>Szwarcfiter, Jayme L</creatorcontrib><title>Dijkstra Graphs</title><description>We revisit a concept that has been central in some early stages of computer
science, that of structured programming: a set of rules that an algorithm must
follow in order to acquire a structure that is desirable in many aspects. While
much has been written about structured programming, an important issue has been
left unanswered: given an arbitrary, compiled program, describe an algorithm to
decide whether or not it is structured, that is, whether it conforms to the
stated principles of structured programming. We refer to the classical concept
of structured programming, as described by Dijkstra. By employing a graph model
and graph-theoretic techniques, we formulate an efficient algorithm for
answering this question. To do so, we first introduce the class of graphs which
correspond to structured programs, which we call Dijkstra Graphs. Our problem
then becomes the recognition of such graphs, for which we present a greedy
$O(n)$-time algorithm. Furthermore, we describe an isomorphism algorithm for
Dijkstra graphs, whose complexity is also linear in the number of vertices of
the graph. Both the recognition and isomorphism algorithms have potential
important applications, such as in code similarity analysis.</description><subject>Computer Science - Discrete Mathematics</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2016</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotzrkKwkAUQNFpLCSKtZX-QOK8zF5KXCFgkz68zIJxgTAR0b8Xo9XtLoeQOdCMayHoCuOrfWYgaZ5RLQUbk9mmvVz7R8TlPmJ37idkFPDW--m_Cal226o4pOVpfyzWZYpSsbRxSptcMDSgkVlnPTRKCLAInAbFvHeGI1irPAvaG5A2OM4ldQIct54lZPHbDqK6i-0d47v-yupBxj5JDDIY</recordid><startdate>20160227</startdate><enddate>20160227</enddate><creator>Bento, Lucila M. S</creator><creator>Boccardo, Davidson R</creator><creator>Machado, Raphael C. S</creator><creator>Miyazawa, Flávio K</creator><creator>de Sá, Vinícius G. Pereira</creator><creator>Szwarcfiter, Jayme L</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20160227</creationdate><title>Dijkstra Graphs</title><author>Bento, Lucila M. S ; Boccardo, Davidson R ; Machado, Raphael C. S ; Miyazawa, Flávio K ; de Sá, Vinícius G. Pereira ; Szwarcfiter, Jayme L</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a673-bd789253a918a3cdce1b7551ca140f73eed94a1cc7e3f8e916cfd4460d51d4ce3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2016</creationdate><topic>Computer Science - Discrete Mathematics</topic><toplevel>online_resources</toplevel><creatorcontrib>Bento, Lucila M. S</creatorcontrib><creatorcontrib>Boccardo, Davidson R</creatorcontrib><creatorcontrib>Machado, Raphael C. S</creatorcontrib><creatorcontrib>Miyazawa, Flávio K</creatorcontrib><creatorcontrib>de Sá, Vinícius G. Pereira</creatorcontrib><creatorcontrib>Szwarcfiter, Jayme L</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Bento, Lucila M. S</au><au>Boccardo, Davidson R</au><au>Machado, Raphael C. S</au><au>Miyazawa, Flávio K</au><au>de Sá, Vinícius G. Pereira</au><au>Szwarcfiter, Jayme L</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Dijkstra Graphs</atitle><date>2016-02-27</date><risdate>2016</risdate><abstract>We revisit a concept that has been central in some early stages of computer
science, that of structured programming: a set of rules that an algorithm must
follow in order to acquire a structure that is desirable in many aspects. While
much has been written about structured programming, an important issue has been
left unanswered: given an arbitrary, compiled program, describe an algorithm to
decide whether or not it is structured, that is, whether it conforms to the
stated principles of structured programming. We refer to the classical concept
of structured programming, as described by Dijkstra. By employing a graph model
and graph-theoretic techniques, we formulate an efficient algorithm for
answering this question. To do so, we first introduce the class of graphs which
correspond to structured programs, which we call Dijkstra Graphs. Our problem
then becomes the recognition of such graphs, for which we present a greedy
$O(n)$-time algorithm. Furthermore, we describe an isomorphism algorithm for
Dijkstra graphs, whose complexity is also linear in the number of vertices of
the graph. Both the recognition and isomorphism algorithms have potential
important applications, such as in code similarity analysis.</abstract><doi>10.48550/arxiv.1602.08653</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | DOI: 10.48550/arxiv.1602.08653 |
ispartof | |
issn | |
language | eng |
recordid | cdi_arxiv_primary_1602_08653 |
source | arXiv.org |
subjects | Computer Science - Discrete Mathematics |
title | Dijkstra Graphs |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-03T22%3A58%3A53IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Dijkstra%20Graphs&rft.au=Bento,%20Lucila%20M.%20S&rft.date=2016-02-27&rft_id=info:doi/10.48550/arxiv.1602.08653&rft_dat=%3Carxiv_GOX%3E1602_08653%3C/arxiv_GOX%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 |