【问题标题】:What programming language is displayed?显示什么编程语言?
【发布时间】:2018-08-21 13:45:59
【问题描述】:

因为我在 Google 上找不到任何东西,而且我以前从未见过这样的语法

t11 = phi [0: 2:int, 1: t10] #i
t12 = t11 < 70:int
if t12 goto 1 else 2
t2 = t11 / 2:int
t3 = &pow10tab[t11]
t4 = &pow10tab[t2]
t5 = *t4
t6 = t11 - t2

我想问一下显示的是什么编程语言?

【问题讨论】:

  • 您能否提供更多关于这个 sn-p 来自哪里的信息? IE。如果它来自一个文件,文件名和扩展名。如果它是包或目录的一部分,那么它的名称是什么?
  • 这段代码来自一个文本文件,它是一个需要解决的问题(某种挑战)的一部分。该文件的名称只是 f67890.txt。有很多类似这些行的行:(该文件包含大约 185k 行)在 /usr/lib/go-1.7/src/math/floor_asm.go:10:6 处启动 math.hasSSE4。 (外部)从 math.hasSSE4 返回,在 /usr/lib/go-1.7/src/math/floor_asm.go:12:22 继续 math.init。 *useSSE4 = t1 t2 = &_gamP[0:int] t3 = &_gamP[1:int]
  • 该文件是否来自第十届计算机科学及其应用国际会议(CSA 2018)? ... 35.194.63.219/csa_2018/trace_me_if_you_can/f67890.txt)。说什么反对SSA representation of the intermediate stages of the Go compiler

标签: compiler-construction ssa


【解决方案1】:

它不是一种编程语言。 根据@Ira Baxters 的评论。是static single assignment form (SSA)

在编译器设计中,静态单一赋值形式(常缩写为SSA形式或简称为SSA)是一种中间表示(IR)的属性,它要求每个变量都只赋值一次,并且每个变量在被定义之前都被定义了。用过。

如果对更多背景信息感兴趣,您可以查看 Golang、编译器后端和 SSA 文档或编译器构建。

【讨论】:

  • (提示这是 SSA 是“phi”运算符) .SSA 基本上 一种编程语言;毕竟,可以在其中编写程序。大多数程序员都没有使用它;相反,它被用作编译器的内部,以表示更容易推理和操作的原始程序的等价物。
  • 我明白了,它是一种中间语言 (IL)。从维基百科我了解到“phi函数(φ函数)是编译器构造中的一个构造。在SSA表示的程序代码的内部表示中,每个变量只写一次。由于不同的变量写在替代分支中, 统一控制流后(例如if/then/else后), 后面代码只能访问一个变量的问题必须解决. 这个问题通过phi函数来解决, 结果返回它的参数实际采取的控制流。”
  • 非常感谢,你帮了我很多
猜你喜欢
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2022-12-10
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 2018-08-27
  • 2011-02-09
相关资源
最近更新 更多