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!
|
Zusammenfassung: | 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: | 10.48550/arxiv.1602.08653 |