Reaching definition (original) (raw)
In compiler theory, a reaching definition for a given instruction is an earlier instruction whose target variable can reach (be assigned to) the given one without an intervening assignment. For example, in the following code: d1 : y := 3d2 : x := y d1 is a reaching definition for d2. In the following, example, however: d1 : y := 3d2 : y := 4d3 : x := y d1 is no longer a reaching definition for d3, because d2 kills its reach: the value defined in d1 is no longer available and cannot reach d3.
Property | Value |
---|---|
dbo:abstract | In compiler theory, a reaching definition for a given instruction is an earlier instruction whose target variable can reach (be assigned to) the given one without an intervening assignment. For example, in the following code: d1 : y := 3d2 : x := y d1 is a reaching definition for d2. In the following, example, however: d1 : y := 3d2 : y := 4d3 : x := y d1 is no longer a reaching definition for d3, because d2 kills its reach: the value defined in d1 is no longer available and cannot reach d3. (en) Достигающие определения (англ. Reaching definition) — одна из наиболее распространенных и полезных схем потока данных. Зная, где именно в программе может быть определена каждая переменная x при достижении потоком управления каждой точки p, можно получить много информации об этой переменной. В частности, компилятор может выяснить, является ли x константой в точке p, а отладчик может сообщить о возможном использовании в точке p не инициализированной переменной x. (ru) 在編譯器理論中,一個指令的定義可達性(Reaching Definition)必然是另外一個指令,而這個指令則是一個沒有交錯賦值指令的目標變數,舉例來說: d1 : y := 3d2 : x := y 在d2中,d1為定義可達性,而在下列的範例中: d1 : y := 3d2 : y := 4d3 : x := y d1 在 d3不再是定義可達性,因為d2使它不再可能被到達。 (zh) |
dbo:wikiPageExternalLink | https://archive.org/details/advancedcompiler00much |
dbo:wikiPageID | 1837665 (xsd:integer) |
dbo:wikiPageLength | 4868 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1106681680 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Dead-code_elimination dbr:Control-flow_graph dbr:Static_single_assignment_form dbr:Compiler_theory dbr:Compilers:_Principles,_Techniques,_and_Tools dbr:Data-flow_analysis dbc:Program_analysis dbc:Data-flow_analysis dbr:Loop-invariant_code_motion dbr:Reachable_uses dbr:Use-def_chain dbr:Data-flow_confluence_operator |
dbp:wikiPageUsesTemplate | dbt:Cite_book |
dct:subject | dbc:Program_analysis dbc:Data-flow_analysis |
rdfs:comment | In compiler theory, a reaching definition for a given instruction is an earlier instruction whose target variable can reach (be assigned to) the given one without an intervening assignment. For example, in the following code: d1 : y := 3d2 : x := y d1 is a reaching definition for d2. In the following, example, however: d1 : y := 3d2 : y := 4d3 : x := y d1 is no longer a reaching definition for d3, because d2 kills its reach: the value defined in d1 is no longer available and cannot reach d3. (en) Достигающие определения (англ. Reaching definition) — одна из наиболее распространенных и полезных схем потока данных. Зная, где именно в программе может быть определена каждая переменная x при достижении потоком управления каждой точки p, можно получить много информации об этой переменной. В частности, компилятор может выяснить, является ли x константой в точке p, а отладчик может сообщить о возможном использовании в точке p не инициализированной переменной x. (ru) 在編譯器理論中,一個指令的定義可達性(Reaching Definition)必然是另外一個指令,而這個指令則是一個沒有交錯賦值指令的目標變數,舉例來說: d1 : y := 3d2 : x := y 在d2中,d1為定義可達性,而在下列的範例中: d1 : y := 3d2 : y := 4d3 : x := y d1 在 d3不再是定義可達性,因為d2使它不再可能被到達。 (zh) |
rdfs:label | Reaching definition (en) Достигающие определения (ru) 定義可達性 (zh) |
owl:sameAs | freebase:Reaching definition wikidata:Reaching definition dbpedia-ru:Reaching definition dbpedia-sr:Reaching definition dbpedia-zh:Reaching definition https://global.dbpedia.org/id/2MK4m |
prov:wasDerivedFrom | wikipedia-en:Reaching_definition?oldid=1106681680&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Reaching_definition |
is dbo:wikiPageRedirects of | dbr:Reaching_definitions |
is dbo:wikiPageWikiLink of | dbr:Constant_folding dbr:Data-flow_analysis dbr:Reaching_definitions dbr:Loop-invariant_code_motion dbr:Static_single-assignment_form dbr:Program_slicing dbr:Upwards_exposed_uses |
is foaf:primaryTopic of | wikipedia-en:Reaching_definition |