. "SSA (\u0430\u043D\u0433\u043B. Static single assignment form) \u2014 \u043F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u0447\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435 \u043A\u043E\u043C\u043F\u0438\u043B\u044F\u0442\u043E\u0440\u0430\u043C\u0438, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043A\u0430\u0436\u0434\u043E\u0439 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0448\u044C \u0435\u0434\u0438\u043D\u043E\u0436\u0434\u044B. \u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u0438, \u043E\u0431\u044B\u0447\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0443\u0444\u0444\u0438\u043A\u0441\u0430, \u0442\u0430\u043A\u0438\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C, \u0447\u0442\u043E \u043A\u0430\u0436\u0434\u043E\u0435 \u043F\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439. \u0412 SSA-\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 DU-\u0446\u0435\u043F\u0438 (\u0430\u043D\u0433\u043B. def-use) \u0437\u0430\u0434\u0430\u043D\u044B \u044F\u0432\u043D\u043E \u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442. SSA-\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0431\u044B\u043B\u043E \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043E \u0438\u0441\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044F\u043C\u0438 IBM \u0420\u043E\u043D\u043E\u043C \u0421\u0438\u0442\u0440\u043E\u043D\u043E\u043C (Ron Cytron), \u0416\u0430\u043D\u043E\u043C \u0424\u0435\u0440\u0440\u0430\u043D\u0442\u043E\u043C (Jeanne Ferrante), \u0411\u0430\u0440\u0440\u0438 \u0420\u043E\u0437\u0435\u043D\u043E\u043C (Barry Rosen), (\u0430\u043D\u0433\u043B. Mark N. Wegman) \u0438 \u041A\u0435\u043D\u043E\u043C \u0417\u0430\u0434\u0435\u043A\u043E\u043C (Ken Zadeck) \u0432 1980-\u0435 \u0433\u043E\u0434\u044B. \u0412 \u043A\u043E\u043C\u043F\u0438\u043B\u044F\u0442\u043E\u0440\u0430\u0445 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u044F\u0437\u044B\u043A\u043E\u0432 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A Scheme, ML \u0438 Haskell, \u0432\u043C\u0435\u0441\u0442\u043E SSA \u043E\u0431\u044B\u0447\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F CPS-\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 (\u0430\u043D\u0433\u043B. Continuation-passing style). \u0424\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E \u044D\u0442\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442\u043D\u044B, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438, \u0441\u0444\u043E\u0440\u043C\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0432 \u043E\u0434\u043D\u043E\u043C \u0438\u0437 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439, \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u044B \u0438 \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u043E\u0433\u043E."@ru . "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 . . . . . . "\u9759\u7684\u5358\u4E00\u4EE3\u5165"@ja . . "28854"^^ . . . . "Single Static Assignment to posta\u0107 programu u\u017Cywana przez kompilatory w trakcie optymalizacji, w kt\u00F3rej ka\u017Cdej zmiennej warto\u015B\u0107 przypisuje si\u0119 tylko raz. Np. dla programu: a = read; b = a + 2; a = a + 1; f(a, b); Posta\u0107 SSA to: a1 = read; b1 = a1 + 2; a2 = a1 + 1; f(a2, b1); Je\u015Bli warto\u015B\u0107 zmiennej w danym u\u017Cyciu mo\u017Ce pochodzi\u0107 z kilku r\u00F3\u017Cnych przypisa\u0144, u\u017Cywa si\u0119 specjalnej \u03C6-funkcji. Dla: a = 2; if (b > 0) a = 4; f(a); Postaci\u0105 SSA jest: a1 = 2; if (b > 0) a2 = 4; a3 = \u03C6(a1, a2); f(a3);"@pl . . . . . . "En compilation informatique, static single assignment form (SSA), en fran\u00E7ais, forme statique \u00E0 affectation unique est une repr\u00E9sentation interm\u00E9diaire (RI) du code source d'un programme dont la particularit\u00E9 est d'astreindre chaque variable \u00E0 n'\u00EAtre affect\u00E9e qu'une et une seule fois. Les variables existantes dans la premi\u00E8re repr\u00E9sentation sont divis\u00E9es en \u00AB versions \u00BB, les nouvelles variables reprenant le nom original avec une extension. La repr\u00E9sentation SSA a \u00E9t\u00E9 d\u00E9velopp\u00E9e par , Jeanne Ferrante, , , et , chercheurs pour IBM dans les ann\u00E9es 1980. Les compilateurs de langages fonctionnels tel que pour le Scheme, ML et Haskell utilisent g\u00E9n\u00E9ralement une technique dite \u00AB continuation-passing style \u00BB (CPS) alors que SSA est utilis\u00E9 principalement pour des langages proc\u00E9duraux tel que le C ou leFortran. Ces deux repr\u00E9sentations sont proches et les optimisations et transformations faites \u00E0 l'une peuvent s'appliquer \u00E0 l'autre."@fr . . . . . . . "SSA"@ru . . "\u9759\u7684\u5358\u4E00\u4EE3\u5165\uFF08\u305B\u3044\u3066\u304D\u305F\u3093\u3044\u3064\u3060\u3044\u306B\u3085\u3046\u3001\u82F1: Static Single Assignment form, SSA\uFF09\u5F62\u5F0F\u306F\u3001\u30B3\u30F3\u30D1\u30A4\u30E9\u8A2D\u8A08\u306B\u304A\u3051\u308B \u4E2D\u9593\u8868\u73FE (IR) \u306E\u3072\u3068\u3064\u3067\u3001\u5404\u5909\u6570\u304C\u4E00\u5EA6\u306E\u307F\u4EE3\u5165\u3055\u308C\u308B\u3088\u3046\u5B9A\u7FA9\u3055\u308C\u305F\u3082\u306E\u3067\u3042\u308B\u3002\u3082\u3068\u3082\u3068\u306E\u4E2D\u9593\u8868\u73FE\u306B\u304A\u3051\u308B\u5909\u6570\u306F\u300C\u30D0\u30FC\u30B8\u30E7\u30F3\u300D\u306B\u5206\u5272\u3055\u308C\u3001\u5168\u3066\u306E\u5909\u6570\u306E\u5B9A\u7FA9\u304C\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u73FE\u3067\u304D\u308B\u3088\u3046\u3001\u901A\u4F8B\u65B0\u305F\u306A\u5909\u6570\u306F\u5143\u306E\u540D\u524D\u306B\u6DFB\u3048\u5B57\u3092\u4ED8\u3051\u3066\u8868\u73FE\u3055\u308C\u308B\u3002SSA \u3067\u306Fuse-def \u9023\u9396\u304C\u660E\u793A\u7684\u3067\u3042\u308A\u3001\u9023\u9396\u306F\u8981\u7D20\u3092\u4E00\u3064\u3060\u3051\u6301\u3064\u3002 SSA \u306F\u3001Jeanne Ferrante\u3001\u3001Mark Wegman\u3001 \u304A\u3088\u3073 IBM \u306E\u7814\u7A76\u8005\u305F\u3061\u306B\u3088\u308A1980\u5E74\u4EE3\u306B\u958B\u767A\u3055\u308C\u305F\u3002 Scheme\u3001ML\u3001Haskell \u306A\u3069\u306E\u95A2\u6570\u578B\u8A00\u8A9E\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u306F\u3001Fortran \u3084 C \u306A\u3069\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067 SSA \u306E\u5229\u7528\u304C\u671F\u5F85\u3055\u308C\u308B\u7B87\u6240\u3067\u7D99\u7D9A\u6E21\u3057\u30B9\u30BF\u30A4\u30EB (CPS) \u3092\u7528\u3044\u308B\u306E\u304C\u4E00\u822C\u7684\u3067\u3042\u308B\u3002SSA \u3068 CPS \u306F\u5F62\u5F0F\u7684\u306B\u7B49\u4FA1\u3067\u3042\u308A\u3001\u6700\u9069\u5316\u3084\u30B3\u30FC\u30C9\u306E\u5909\u63DB\u306A\u3069\u304C\u3044\u305A\u308C\u304B\u306B\u65BD\u3055\u308C\u305F\u5834\u5408\u3001\u3082\u3046\u7247\u65B9\u306B\u3082\u540C\u69D8\u306B\u9069\u7528\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002"@ja . . . . "SSA (\u0430\u043D\u0433\u043B. Static single assignment form) \u2014 \u043F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u0447\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435 \u043A\u043E\u043C\u043F\u0438\u043B\u044F\u0442\u043E\u0440\u0430\u043C\u0438, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043A\u0430\u0436\u0434\u043E\u0439 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0448\u044C \u0435\u0434\u0438\u043D\u043E\u0436\u0434\u044B. \u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u0438, \u043E\u0431\u044B\u0447\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0443\u0444\u0444\u0438\u043A\u0441\u0430, \u0442\u0430\u043A\u0438\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C, \u0447\u0442\u043E \u043A\u0430\u0436\u0434\u043E\u0435 \u043F\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439. \u0412 SSA-\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 DU-\u0446\u0435\u043F\u0438 (\u0430\u043D\u0433\u043B. def-use) \u0437\u0430\u0434\u0430\u043D\u044B \u044F\u0432\u043D\u043E \u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442."@ru . . "Static single assignment form"@fr . . . "373371"^^ . "\u5728\u7DE8\u8B6F\u5668\u7684\u8A2D\u8A08\u4E2D\uFF0C\u975C\u614B\u55AE\u8CE6\u503C\u5F62\u5F0F\uFF08static single assignment form\uFF0C\u901A\u5E38\u7C21\u5BEB\u70BASSA form\u6216\u662FSSA\uFF09\u662F\u4E2D\u9593\u8868\u793A\uFF08IR\uFF0Cintermediate representation)\u7684\u7279\u6027\uFF0C\u6BCF\u500B\u8B8A\u6578\u50C5\u88AB\u8CE6\u503C\u4E00\u6B21\u3002\u5728\u539F\u59CB\u7684IR\u4E2D\uFF0C\u5DF2\u5B58\u5728\u7684\u8B8A\u6578\u53EF\u88AB\u5206\u5272\u6210\u8A31\u591A\u4E0D\u540C\u7684\u7248\u672C\uFF0C\u5728\u8A31\u591A\u6559\u79D1\u66F8\u7576\u4E2D\u901A\u5E38\u6703\u5C07\u820A\u7684\u8B8A\u6578\u540D\u7A31\u52A0\u4E0A\u4E00\u500B\u4E0B\u6A19\u800C\u6210\u70BA\u65B0\u7684\u8B8A\u6578\u540D\u7A31\uFF0C\u4EE5\u81F3\u65BC\u6A19\u660E\u6BCF\u500B\u8B8A\u6578\u53CA\u5176\u4E0D\u540C\u7248\u672C\u3002\u5728SSA\uFF0C\uFF08use-define chain\uFF0C\u8CE6\u503C\u4EE3\u8868define\uFF0C\u4F7F\u7528\u8B8A\u6578\u4EE3\u8868use\uFF09\u662F\u975E\u5E38\u660E\u78BA\uFF0C\u800C\u4E14\u6BCF\u500B\u50C5\u5305\u542B\u55AE\u4E00\u5143\u7D20\u3002 SSA\u65BC1980\u5E74\u5728IBM\u958B\u59CB\u9032\u884C\u7814\u7A76\uFF0C\u5B83\u662F\u7531\u3001\u3001\u3001\u53CA\u6240\u958B\u767C\u3002 SSA\u7B49\u540C\u65BC\u4E00\u500B\u6301\u7E8C\u50B3\u905E\u5F0F\u6A23\uFF08CPS\uFF0Ccontinuation-passing style\uFF09\u7684\u5B50\u96C6\uFF08\u4E0D\u5305\u542B\u975E\u672C\u5730\u7AEF\u63A7\u5236\u6D41\u7A0B\u3002\u7576CPS\u88AB\u4F7F\u7528\u5728IR\uFF0C\u524D\u8005\u5C31\u4E0D\u6703\u767C\u751F\uFF09\uFF0C\u6240\u4EE5\u4EFB\u4F55\u6700\u4F73\u5316\u53CA\u8F49\u63DB\uFF0C\u90FD\u6703\u9069\u7528\u65BCCPS\u3002\u7576\u6211\u5011\u671F\u5F85\u5728C\u6216\u662FFortran\u7684\u7DE8\u8B6F\u5668\u4E2D\u4F7F\u7528SSA\u6642\uFF0CCPS\u5DF2\u88AB\u5EE3\u6CDB\u5730\u4F7F\u7528\u5728\u51FD\u6578\u7A0B\u5F0F\u8A9E\u8A00\u7684\u7DE8\u8B6F\u5668\u4E2D\uFF0C\u50CF\u662FScheme\u3001ML\u53CAHaskell\u3002"@zh . . . . . "1120708999"^^ . . . . . . . . . . "\u9759\u7684\u5358\u4E00\u4EE3\u5165\uFF08\u305B\u3044\u3066\u304D\u305F\u3093\u3044\u3064\u3060\u3044\u306B\u3085\u3046\u3001\u82F1: Static Single Assignment form, SSA\uFF09\u5F62\u5F0F\u306F\u3001\u30B3\u30F3\u30D1\u30A4\u30E9\u8A2D\u8A08\u306B\u304A\u3051\u308B \u4E2D\u9593\u8868\u73FE (IR) \u306E\u3072\u3068\u3064\u3067\u3001\u5404\u5909\u6570\u304C\u4E00\u5EA6\u306E\u307F\u4EE3\u5165\u3055\u308C\u308B\u3088\u3046\u5B9A\u7FA9\u3055\u308C\u305F\u3082\u306E\u3067\u3042\u308B\u3002\u3082\u3068\u3082\u3068\u306E\u4E2D\u9593\u8868\u73FE\u306B\u304A\u3051\u308B\u5909\u6570\u306F\u300C\u30D0\u30FC\u30B8\u30E7\u30F3\u300D\u306B\u5206\u5272\u3055\u308C\u3001\u5168\u3066\u306E\u5909\u6570\u306E\u5B9A\u7FA9\u304C\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u73FE\u3067\u304D\u308B\u3088\u3046\u3001\u901A\u4F8B\u65B0\u305F\u306A\u5909\u6570\u306F\u5143\u306E\u540D\u524D\u306B\u6DFB\u3048\u5B57\u3092\u4ED8\u3051\u3066\u8868\u73FE\u3055\u308C\u308B\u3002SSA \u3067\u306Fuse-def \u9023\u9396\u304C\u660E\u793A\u7684\u3067\u3042\u308A\u3001\u9023\u9396\u306F\u8981\u7D20\u3092\u4E00\u3064\u3060\u3051\u6301\u3064\u3002 SSA \u306F\u3001Jeanne Ferrante\u3001\u3001Mark Wegman\u3001 \u304A\u3088\u3073 IBM \u306E\u7814\u7A76\u8005\u305F\u3061\u306B\u3088\u308A1980\u5E74\u4EE3\u306B\u958B\u767A\u3055\u308C\u305F\u3002 Scheme\u3001ML\u3001Haskell \u306A\u3069\u306E\u95A2\u6570\u578B\u8A00\u8A9E\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u306F\u3001Fortran \u3084 C \u306A\u3069\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067 SSA \u306E\u5229\u7528\u304C\u671F\u5F85\u3055\u308C\u308B\u7B87\u6240\u3067\u7D99\u7D9A\u6E21\u3057\u30B9\u30BF\u30A4\u30EB (CPS) \u3092\u7528\u3044\u308B\u306E\u304C\u4E00\u822C\u7684\u3067\u3042\u308B\u3002SSA \u3068 CPS \u306F\u5F62\u5F0F\u7684\u306B\u7B49\u4FA1\u3067\u3042\u308A\u3001\u6700\u9069\u5316\u3084\u30B3\u30FC\u30C9\u306E\u5909\u63DB\u306A\u3069\u304C\u3044\u305A\u308C\u304B\u306B\u65BD\u3055\u308C\u305F\u5834\u5408\u3001\u3082\u3046\u7247\u65B9\u306B\u3082\u540C\u69D8\u306B\u9069\u7528\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002"@ja . . . . . . . . . . . . . . . . . . . "Static single-assignment form"@en . . . . . . "Static single assignment form (ofta f\u00F6rkortat SSA form eller SSA) \u00E4r inom datavetenskapen en representation av datorinstruktioner (intermediate code) d\u00E4r varje variabel tilldelas exakt en g\u00E5ng. Existerande variabler i den ursprungliga koden delas upp i versioner (i regel med ett index), s\u00E5 att varje tilldelning till en variabel f\u00E5r ett eget namn. Nedan f\u00F6ljer ett enkelt program (f\u00F6re \u00F6verg\u00E5ng till SSA) y := 4; y := 2; x := y; print(x) Efter \u00F6verg\u00E5ng till SSA ser det ut s\u00E5 h\u00E4r y1 := 4; y2 := 2; x1 := y2; print(x1)"@sv . . . . . "Static single assignment form (ofta f\u00F6rkortat SSA form eller SSA) \u00E4r inom datavetenskapen en representation av datorinstruktioner (intermediate code) d\u00E4r varje variabel tilldelas exakt en g\u00E5ng. Existerande variabler i den ursprungliga koden delas upp i versioner (i regel med ett index), s\u00E5 att varje tilldelning till en variabel f\u00E5r ett eget namn. Nedan f\u00F6ljer ett enkelt program (f\u00F6re \u00F6verg\u00E5ng till SSA) y := 4; y := 2; x := y; print(x) Efter \u00F6verg\u00E5ng till SSA ser det ut s\u00E5 h\u00E4r y1 := 4; y2 := 2; x1 := y2; print(x1) En stor f\u00F6rdel med SSA \u00E4r att det \u00E4r mycket l\u00E4ttare att skriva optimeringsalgoritmer, d\u00E5 man bara beh\u00F6ver h\u00E5lla reda p\u00E5 var en variabel initieras och var den anv\u00E4nds. I exemplet ovan har variabeln y1 inga instruktioner i sin anv\u00E4ndningslista, vilket betyder att den kan tas bort helt ur programmet. Det \u00E4r ocks\u00E5 l\u00E4tt att visa att en variabel \u00E4r konstant ifall det v\u00E4rde som variabeln initierades med i sin tur \u00E4r konstant. SSA utvecklades av , , , och (samtliga forskare p\u00E5 IBM) under 1980-talet."@sv . . . . . . "En compilation informatique, static single assignment form (SSA), en fran\u00E7ais, forme statique \u00E0 affectation unique est une repr\u00E9sentation interm\u00E9diaire (RI) du code source d'un programme dont la particularit\u00E9 est d'astreindre chaque variable \u00E0 n'\u00EAtre affect\u00E9e qu'une et une seule fois. Les variables existantes dans la premi\u00E8re repr\u00E9sentation sont divis\u00E9es en \u00AB versions \u00BB, les nouvelles variables reprenant le nom original avec une extension. La repr\u00E9sentation SSA a \u00E9t\u00E9 d\u00E9velopp\u00E9e par , Jeanne Ferrante, , , et , chercheurs pour IBM dans les ann\u00E9es 1980."@fr . . "\u5728\u7DE8\u8B6F\u5668\u7684\u8A2D\u8A08\u4E2D\uFF0C\u975C\u614B\u55AE\u8CE6\u503C\u5F62\u5F0F\uFF08static single assignment form\uFF0C\u901A\u5E38\u7C21\u5BEB\u70BASSA form\u6216\u662FSSA\uFF09\u662F\u4E2D\u9593\u8868\u793A\uFF08IR\uFF0Cintermediate representation)\u7684\u7279\u6027\uFF0C\u6BCF\u500B\u8B8A\u6578\u50C5\u88AB\u8CE6\u503C\u4E00\u6B21\u3002\u5728\u539F\u59CB\u7684IR\u4E2D\uFF0C\u5DF2\u5B58\u5728\u7684\u8B8A\u6578\u53EF\u88AB\u5206\u5272\u6210\u8A31\u591A\u4E0D\u540C\u7684\u7248\u672C\uFF0C\u5728\u8A31\u591A\u6559\u79D1\u66F8\u7576\u4E2D\u901A\u5E38\u6703\u5C07\u820A\u7684\u8B8A\u6578\u540D\u7A31\u52A0\u4E0A\u4E00\u500B\u4E0B\u6A19\u800C\u6210\u70BA\u65B0\u7684\u8B8A\u6578\u540D\u7A31\uFF0C\u4EE5\u81F3\u65BC\u6A19\u660E\u6BCF\u500B\u8B8A\u6578\u53CA\u5176\u4E0D\u540C\u7248\u672C\u3002\u5728SSA\uFF0C\uFF08use-define chain\uFF0C\u8CE6\u503C\u4EE3\u8868define\uFF0C\u4F7F\u7528\u8B8A\u6578\u4EE3\u8868use\uFF09\u662F\u975E\u5E38\u660E\u78BA\uFF0C\u800C\u4E14\u6BCF\u500B\u50C5\u5305\u542B\u55AE\u4E00\u5143\u7D20\u3002 SSA\u65BC1980\u5E74\u5728IBM\u958B\u59CB\u9032\u884C\u7814\u7A76\uFF0C\u5B83\u662F\u7531\u3001\u3001\u3001\u53CA\u6240\u958B\u767C\u3002 SSA\u7B49\u540C\u65BC\u4E00\u500B\u6301\u7E8C\u50B3\u905E\u5F0F\u6A23\uFF08CPS\uFF0Ccontinuation-passing style\uFF09\u7684\u5B50\u96C6\uFF08\u4E0D\u5305\u542B\u975E\u672C\u5730\u7AEF\u63A7\u5236\u6D41\u7A0B\u3002\u7576CPS\u88AB\u4F7F\u7528\u5728IR\uFF0C\u524D\u8005\u5C31\u4E0D\u6703\u767C\u751F\uFF09\uFF0C\u6240\u4EE5\u4EFB\u4F55\u6700\u4F73\u5316\u53CA\u8F49\u63DB\uFF0C\u90FD\u6703\u9069\u7528\u65BCCPS\u3002\u7576\u6211\u5011\u671F\u5F85\u5728C\u6216\u662FFortran\u7684\u7DE8\u8B6F\u5668\u4E2D\u4F7F\u7528SSA\u6642\uFF0CCPS\u5DF2\u88AB\u5EE3\u6CDB\u5730\u4F7F\u7528\u5728\u51FD\u6578\u7A0B\u5F0F\u8A9E\u8A00\u7684\u7DE8\u8B6F\u5668\u4E2D\uFF0C\u50CF\u662FScheme\u3001ML\u53CAHaskell\u3002"@zh . . . "SSA (static single assignment form)"@sv . . . . . . . . . . . "Single Static Assignment to posta\u0107 programu u\u017Cywana przez kompilatory w trakcie optymalizacji, w kt\u00F3rej ka\u017Cdej zmiennej warto\u015B\u0107 przypisuje si\u0119 tylko raz. Np. dla programu: a = read; b = a + 2; a = a + 1; f(a, b); Posta\u0107 SSA to: a1 = read; b1 = a1 + 2; a2 = a1 + 1; f(a2, b1); Je\u015Bli warto\u015B\u0107 zmiennej w danym u\u017Cyciu mo\u017Ce pochodzi\u0107 z kilku r\u00F3\u017Cnych przypisa\u0144, u\u017Cywa si\u0119 specjalnej \u03C6-funkcji. Dla: a = 2; if (b > 0) a = 4; f(a); Postaci\u0105 SSA jest: a1 = 2; if (b > 0) a2 = 4; a3 = \u03C6(a1, a2); f(a3); Posta\u0107 SSA u\u0142atwia wiele rodzaj\u00F3w optymalizacji. Najprostsz\u0105 jest \u2013 je\u015Bli wiemy \u017Ce do danej SSA-zmiennej zosta\u0142a przypisana pewna warto\u015B\u0107, mo\u017Cemy zast\u0105pi\u0107 wszystkie u\u017Cycia tej zmiennej przez dan\u0105 sta\u0142\u0105, nawet je\u015Bli w oryginalnym programie zmienna ta by\u0142a u\u017Cywana te\u017C do innych cel\u00F3w."@pl . . . . . . . . . . "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 . . . . . . . . . . . . . . . . . . . . . "Single Static Assignment"@pl . . . . . "\u9759\u6001\u5355\u8D4B\u503C\u5F62\u5F0F"@zh .