This HTML5 document contains 143 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dctermshttp://purl.org/dc/terms/
dbohttp://dbpedia.org/ontology/
n37http://dbpedia.org/resource/File:
foafhttp://xmlns.com/foaf/0.1/
n35http://webcast.rice.edu/
n36http://www.dcs.gla.ac.uk/~jsinger/
n7https://global.dbpedia.org/id/
dbpedia-ruhttp://ru.dbpedia.org/resource/
dbthttp://dbpedia.org/resource/Template:
rdfshttp://www.w3.org/2000/01/rdf-schema#
n29https://blog.chromium.org/2010/12/
dbpedia-svhttp://sv.dbpedia.org/resource/
dbpedia-plhttp://pl.dbpedia.org/resource/
n17http://www-csag.ucsd.edu/papers/
n33http://
n11https://lwn.net/Articles/84888/
n16http://commons.wikimedia.org/wiki/Special:FilePath/
dbpedia-fahttp://fa.dbpedia.org/resource/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
owlhttp://www.w3.org/2002/07/owl#
dbpedia-frhttp://fr.dbpedia.org/resource/
n18http://boomerang.sourceforge.net/
wikipedia-enhttp://en.wikipedia.org/wiki/
n26https://archive.org/details/
dbpedia-zhhttp://zh.dbpedia.org/resource/
n31https://web.archive.org/web/20040531024854/http:/www.is.titech.ac.jp/~sassa/coins-www-ssa/english/
n13http://ssabook.gforge.inria.fr/latest/
dbphttp://dbpedia.org/property/
n19http://cri.ensmp.fr/people/pop/papers/
provhttp://www.w3.org/ns/prov#
dbchttp://dbpedia.org/resource/Category:
xsdhhttp://www.w3.org/2001/XMLSchema#
n10http://pp.ipd.kit.edu/firm/
wikidatahttp://www.wikidata.org/entity/
n27http://www.cdl.uni-saarland.de/projects/
dbrhttp://dbpedia.org/resource/
n23http://citeseer.ist.psu.edu/
dbpedia-jahttp://ja.dbpedia.org/resource/

Statements

Subject Item
dbr:Static_single-assignment_form
rdfs:label
静的単一代入 SSA Static single assignment form Static single-assignment form SSA (static single assignment form) Single Static Assignment 静态单赋值形式
rdfs:comment
In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR) that requires each variable to be assigned exactly once and defined before it is used. Existing variables in the original IR are split into versions, new variables typically indicated by the original name with a subscript in textbooks, so that every definition gets its own version. In SSA form, use-def chains are explicit and each contains a single element. Single Static Assignment to postać programu używana przez kompilatory w trakcie optymalizacji, w której każdej zmiennej wartość przypisuje się tylko raz. Np. dla programu: a = read; b = a + 2; a = a + 1; f(a, b); Postać SSA to: a1 = read; b1 = a1 + 2; a2 = a1 + 1; f(a2, b1); Jeśli wartość zmiennej w danym użyciu może pochodzić z kilku różnych przypisań, używa się specjalnej φ-funkcji. Dla: a = 2; if (b > 0) a = 4; f(a); Postacią SSA jest: a1 = 2; if (b > 0) a2 = 4; a3 = φ(a1, a2); f(a3); 静的単一代入(せいてきたんいつだいにゅう、英: Static Single Assignment form, SSA)形式は、コンパイラ設計における 中間表現 (IR) のひとつで、各変数が一度のみ代入されるよう定義されたものである。もともとの中間表現における変数は「バージョン」に分割され、全ての変数の定義がバージョンを表現できるよう、通例新たな変数は元の名前に添え字を付けて表現される。SSA ではuse-def 連鎖が明示的であり、連鎖は要素を一つだけ持つ。 SSA は、Jeanne Ferrante、、Mark Wegman、 および IBM の研究者たちにより1980年代に開発された。 Scheme、ML、Haskell などの関数型言語のコンパイラでは、Fortran や C などのコンパイラで SSA の利用が期待される箇所で継続渡しスタイル (CPS) を用いるのが一般的である。SSA と CPS は形式的に等価であり、最適化やコードの変換などがいずれかに施された場合、もう片方にも同様に適用することができる。 SSA (англ. Static single assignment form) — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи (англ. def-use) заданы явно и содержат единственный элемент. 在編譯器的設計中,靜態單賦值形式(static single assignment form,通常簡寫為SSA form或是SSA)是中間表示(IR,intermediate representation)的特性,每個變數僅被賦值一次。在原始的IR中,已存在的變數可被分割成許多不同的版本,在許多教科書當中通常會將舊的變數名稱加上一個下標而成為新的變數名稱,以至於標明每個變數及其不同版本。在SSA,(use-define chain,賦值代表define,使用變數代表use)是非常明確,而且每個僅包含單一元素。 SSA於1980年在IBM開始進行研究,它是由、、、及所開發。 SSA等同於一個持續傳遞式樣(CPS,continuation-passing style)的子集(不包含非本地端控制流程。當CPS被使用在IR,前者就不會發生),所以任何最佳化及轉換,都會適用於CPS。當我們期待在C或是Fortran的編譯器中使用SSA時,CPS已被廣泛地使用在函數程式語言的編譯器中,像是Scheme、ML及Haskell。 Static single assignment form (ofta förkortat SSA form eller SSA) är inom datavetenskapen en representation av datorinstruktioner (intermediate code) där varje variabel tilldelas exakt en gång. Existerande variabler i den ursprungliga koden delas upp i versioner (i regel med ett index), så att varje tilldelning till en variabel får ett eget namn. Nedan följer ett enkelt program (före övergång till SSA) y := 4; y := 2; x := y; print(x) Efter övergång till SSA ser det ut så här y1 := 4; y2 := 2; x1 := y2; print(x1) En compilation informatique, static single assignment form (SSA), en français, forme statique à affectation unique est une représentation intermédiaire (RI) du code source d'un programme dont la particularité est d'astreindre chaque variable à n'être affectée qu'une et une seule fois. Les variables existantes dans la première représentation sont divisées en « versions », les nouvelles variables reprenant le nom original avec une extension. La représentation SSA a été développée par , Jeanne Ferrante, , , et , chercheurs pour IBM dans les années 1980.
foaf:depiction
n16:SSA_example1.3.png n16:SSA_example1.1.png n16:SSA_example1.2.png
dcterms:subject
dbc:Compiler_optimizations
dbo:wikiPageID
373371
dbo:wikiPageRevisionID
1120708999
dbo:wikiPageWikiLink
dbr:V8_JavaScript_engine dbr:Continuation-passing_style dbr:Front_and_back_ends dbr:Mozilla dbr:MLton dbr:Jikes_RVM dbr:Erlang_(programming_language) dbr:Functional_language dbr:Rice_University dbr:Dalvik_(software) dbr:Intermediate_representation dbr:IBM dbr:Mono_(software) dbr:Dead-code_elimination dbr:Jeanne_Ferrante dbr:Graph_coloring dbr:Dominator_(graph_theory) dbr:Android_(operating_system) dbr:Mark_N._Wegman dbr:C_(programming_language) dbr:Register_Transfer_Language dbr:Oracle_Corporation dbr:SafeTSA dbr:Vulkan_(API) dbr:Partial-redundancy_elimination dbr:Firefox dbr:Value_range_propagation dbr:PyPy dbr:Dead_code_elimination dbr:Ron_Cytron dbr:LLVM dbr:Swift_(programming_language) dbr:Global_value_numbering dbr:Chromium_(web_browser) dbr:Java_(programming_language) dbr:Microsoft_Visual_Studio dbr:OpenCL dbr:Bytecode dbr:HotSpot_(virtual_machine) dbr:F._Kenneth_Zadeck dbr:ML_programming_language dbr:Hack_(programming_language) dbr:Android_Runtime dbr:Portable.NET dbr:Reaching_definition dbr:Wide-issue dbr:Constant_propagation dbr:Compiler dbr:Use-define_chain dbr:Sparse_conditional_constant_propagation dbr:Mesa_(computer_graphics) dbr:C++ dbr:GNU_Compiler_Collection dbr:WebKit dbr:Compute_kernel dbr:HHVM dbr:GIMPLE dbr:Assignment_(computer_science) dbr:Live-variable_analysis dbr:International_Business_Machines dbr:SpiderMonkey dbr:SPIR-V dbr:Open64 dbr:Assembly_language dbc:Compiler_optimizations dbr:Oberon-2 dbr:Go_(programming_language) dbr:Barry_Rosen_(computer_scientist) dbr:Visual_C++ dbr:LuaJIT dbr:Register_allocation dbr:Scheme_(programming_language) dbr:Compiler_optimization dbr:Strength_reduction dbr:PHP dbr:Control-flow_graph dbr:Fortran dbr:Java_virtual_machine n37:SSA_example1.1.png n37:SSA_example1.2.png n37:SSA_example1.3.png
dbo:wikiPageExternalLink
n10: n11: n13:book.pdf n17:jplevyak-thesis.ps n18: n19:2006-12-thesis.pdf n23:721276.html n26:advancedcompiler00much n27:ssaconstr%7C n29:new-crankshaft-for-v8.html n31: n33:jackcc.sf.net n35:webcast.php%3Faction=details&event=1346 n36:ssa.html
owl:sameAs
dbpedia-ja:静的単一代入 n7:2WLDf dbpedia-sv:SSA_(static_single_assignment_form) dbpedia-fr:Static_single_assignment_form dbpedia-fa:فرم_تخصیص_ایستای_منفرد wikidata:Q2667487 dbpedia-pl:Single_Static_Assignment dbpedia-zh:静态单赋值形式 dbpedia-ru:SSA
dbp:wikiPageUsesTemplate
dbt:ISBN dbt:Reflist dbt:Cite_journal dbt:Cite_book dbt:Example_farm dbt:Em dbt:Dfn dbt:Citation
dbo:thumbnail
n16:SSA_example1.1.png?width=300
dbo:abstract
SSA (англ. Static single assignment form) — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи (англ. def-use) заданы явно и содержат единственный элемент. SSA-представление было разработано исследователями IBM Роном Ситроном (Ron Cytron), Жаном Феррантом (Jeanne Ferrante), Барри Розеном (Barry Rosen), (англ. Mark N. Wegman) и Кеном Задеком (Ken Zadeck) в 1980-е годы. В компиляторах функциональных языков программирования, таких как Scheme, ML и Haskell, вместо SSA обычно используется CPS-представление (англ. Continuation-passing style). Формально эти представления эквивалентны, поэтому оптимизации и трансформации, сформулированные в одном из представлений, могут быть применены и для другого. En compilation informatique, static single assignment form (SSA), en français, forme statique à affectation unique est une représentation intermédiaire (RI) du code source d'un programme dont la particularité est d'astreindre chaque variable à n'être affectée qu'une et une seule fois. Les variables existantes dans la première représentation sont divisées en « versions », les nouvelles variables reprenant le nom original avec une extension. La représentation SSA a été développée par , Jeanne Ferrante, , , et , chercheurs pour IBM dans les années 1980. Les compilateurs de langages fonctionnels tel que pour le Scheme, ML et Haskell utilisent généralement une technique dite « continuation-passing style » (CPS) alors que SSA est utilisé principalement pour des langages procéduraux tel que le C ou leFortran. Ces deux représentations sont proches et les optimisations et transformations faites à l'une peuvent s'appliquer à l'autre. 静的単一代入(せいてきたんいつだいにゅう、英: Static Single Assignment form, SSA)形式は、コンパイラ設計における 中間表現 (IR) のひとつで、各変数が一度のみ代入されるよう定義されたものである。もともとの中間表現における変数は「バージョン」に分割され、全ての変数の定義がバージョンを表現できるよう、通例新たな変数は元の名前に添え字を付けて表現される。SSA ではuse-def 連鎖が明示的であり、連鎖は要素を一つだけ持つ。 SSA は、Jeanne Ferrante、、Mark Wegman、 および IBM の研究者たちにより1980年代に開発された。 Scheme、ML、Haskell などの関数型言語のコンパイラでは、Fortran や C などのコンパイラで SSA の利用が期待される箇所で継続渡しスタイル (CPS) を用いるのが一般的である。SSA と CPS は形式的に等価であり、最適化やコードの変換などがいずれかに施された場合、もう片方にも同様に適用することができる。 Static single assignment form (ofta förkortat SSA form eller SSA) är inom datavetenskapen en representation av datorinstruktioner (intermediate code) där varje variabel tilldelas exakt en gång. Existerande variabler i den ursprungliga koden delas upp i versioner (i regel med ett index), så att varje tilldelning till en variabel får ett eget namn. Nedan följer ett enkelt program (före övergång till SSA) y := 4; y := 2; x := y; print(x) Efter övergång till SSA ser det ut så här y1 := 4; y2 := 2; x1 := y2; print(x1) En stor fördel med SSA är att det är mycket lättare att skriva optimeringsalgoritmer, då man bara behöver hålla reda på var en variabel initieras och var den används. I exemplet ovan har variabeln y1 inga instruktioner i sin användningslista, vilket betyder att den kan tas bort helt ur programmet. Det är också lätt att visa att en variabel är konstant ifall det värde som variabeln initierades med i sin tur är konstant. SSA utvecklades av , , , och (samtliga forskare på IBM) under 1980-talet. 在編譯器的設計中,靜態單賦值形式(static single assignment form,通常簡寫為SSA form或是SSA)是中間表示(IR,intermediate representation)的特性,每個變數僅被賦值一次。在原始的IR中,已存在的變數可被分割成許多不同的版本,在許多教科書當中通常會將舊的變數名稱加上一個下標而成為新的變數名稱,以至於標明每個變數及其不同版本。在SSA,(use-define chain,賦值代表define,使用變數代表use)是非常明確,而且每個僅包含單一元素。 SSA於1980年在IBM開始進行研究,它是由、、、及所開發。 SSA等同於一個持續傳遞式樣(CPS,continuation-passing style)的子集(不包含非本地端控制流程。當CPS被使用在IR,前者就不會發生),所以任何最佳化及轉換,都會適用於CPS。當我們期待在C或是Fortran的編譯器中使用SSA時,CPS已被廣泛地使用在函數程式語言的編譯器中,像是Scheme、ML及Haskell。 Single Static Assignment to postać programu używana przez kompilatory w trakcie optymalizacji, w której każdej zmiennej wartość przypisuje się tylko raz. Np. dla programu: a = read; b = a + 2; a = a + 1; f(a, b); Postać SSA to: a1 = read; b1 = a1 + 2; a2 = a1 + 1; f(a2, b1); Jeśli wartość zmiennej w danym użyciu może pochodzić z kilku różnych przypisań, używa się specjalnej φ-funkcji. Dla: a = 2; if (b > 0) a = 4; f(a); Postacią SSA jest: a1 = 2; if (b > 0) a2 = 4; a3 = φ(a1, a2); f(a3); Postać SSA ułatwia wiele rodzajów optymalizacji. Najprostszą jest – jeśli wiemy że do danej SSA-zmiennej została przypisana pewna wartość, możemy zastąpić wszystkie użycia tej zmiennej przez daną stałą, nawet jeśli w oryginalnym programie zmienna ta była używana też do innych celów. In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR) that requires each variable to be assigned exactly once and defined before it is used. Existing variables in the original IR are split into versions, new variables typically indicated by the original name with a subscript in textbooks, so that every definition gets its own version. In SSA form, use-def chains are explicit and each contains a single element. SSA was proposed by , Mark N. Wegman, and in 1988. , Jeanne Ferrante and the previous three researchers at IBM developed an algorithm that can compute the SSA form efficiently. One can expect to find SSA in a compiler for Fortran, C or C++, whereas in functional language compilers, such as those for Scheme and ML, continuation-passing style (CPS) is generally used. SSA is formally equivalent to a well-behaved subset of CPS excluding non-local control flow, which does not occur when CPS is used as intermediate representation. So optimizations and transformations formulated in terms of one immediately apply to the other.
prov:wasDerivedFrom
wikipedia-en:Static_single-assignment_form?oldid=1120708999&ns=0
dbo:wikiPageLength
28854
foaf:isPrimaryTopicOf
wikipedia-en:Static_single-assignment_form