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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Bento, Lucila M. S, Boccardo, Davidson R, Machado, Raphael C. S, Miyazawa, Flávio K, de Sá, Vinícius G. Pereira, Szwarcfiter, Jayme L
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