Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
An Entity of Type: Thing, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

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.

Property Value
dbo:abstract
  • 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. (fr)
  • 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. (en)
  • 静的単一代入(せいてきたんいつだいにゅう、英: 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 は形式的に等価であり、最適化やコードの変換などがいずれかに施された場合、もう片方にも同様に適用することができる。 (ja)
  • 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. (pl)
  • 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. (sv)
  • 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). Формально эти представления эквивалентны, поэтому оптимизации и трансформации, сформулированные в одном из представлений, могут быть применены и для другого. (ru)
  • 在編譯器的設計中,靜態單賦值形式(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。 (zh)
dbo:thumbnail
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 373371 (xsd:integer)
dbo:wikiPageLength
  • 28854 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1120708999 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
rdfs:comment
  • 静的単一代入(せいてきたんいつだいにゅう、英: 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 は形式的に等価であり、最適化やコードの変換などがいずれかに施された場合、もう片方にも同様に適用することができる。 (ja)
  • 在編譯器的設計中,靜態單賦值形式(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。 (zh)
  • 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. (en)
  • 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. (fr)
  • 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); (pl)
  • 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) (sv)
  • SSA (англ. Static single assignment form) — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи (англ. def-use) заданы явно и содержат единственный элемент. (ru)
rdfs:label
  • Static single assignment form (fr)
  • 静的単一代入 (ja)
  • Single Static Assignment (pl)
  • Static single-assignment form (en)
  • SSA (ru)
  • SSA (static single assignment form) (sv)
  • 静态单赋值形式 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:depiction
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is rdfs:seeAlso of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License