有没有,没有 if else 的编程语言?

2021-07-06 11:11:36 +08:00
 heheda11

。。。。就问问 🤗🤗🤗

4397 次点击
所在节点    问与答
36 条回复
eason1874
2021-07-06 18:57:21 +08:00
除非把 markup language 也算作 programming language,否则不可能没有条件判断,这是编程最基础的东西了。
iceheart
2021-07-06 18:59:26 +08:00
XML,HTML
amimo
2021-07-06 20:25:24 +08:00
用楼上老哥们说的 switch-case 貌似就可以。比如比较两数,可以将他们减,使用得数的符号位(正负)判断他们的大小。

int32_t min(int32_t a, int32_t b)
{
int c = ((a - b) >> 31) & 1; // 取(a - b) 符号位 0, 1
switch (c) {
case 0:
return b;
case 1:
// c == 1 => a - b < 0 -> a < b
return a;
}
}
CosimoZi
2021-07-06 20:38:55 +08:00
理解一下图灵机
explore365
2021-07-06 20:39:00 +08:00
什么,计算机不是二进制的?
mxT52CRuqR6o5
2021-07-06 20:40:26 +08:00
没有分支判断的话实现不了图灵完备吧,brainfuck 也是有分支判断的
Tink
2021-07-06 20:48:16 +08:00
how to make love 没有判断
inhzus
2021-07-06 21:34:28 +08:00
广义的来说应该都有,如果只是狭义的 if else,指没有类似代码块形式的,C++ 模板语言偏特化可以算一个
kaneg
2021-07-06 23:13:04 +08:00
计算机基础里提到过一门完整的语言必须具备以下三个条件:
顺序
条件
循环
icyalala
2021-07-06 23:34:12 +08:00
如果你说的是 "没有分支判断" 的 "图灵完备" 语言,那没有。
pkookp8
2021-07-06 23:47:51 +08:00
#define if while
狗头保命
msg7086
2021-07-07 00:40:01 +08:00
从定义上就不满足了。没有判断的不能叫编程语言。
zk8802
2021-07-07 07:30:37 +08:00
fo0o7hU2tr6v6TCe
2021-07-07 13:45:14 +08:00
icyalala
2021-07-07 18:14:45 +08:00
@zk8802 看来是我想当然了。。去搜了一下资料:
mov 是图灵完备的:
https://web.archive.org/web/20190331191157/https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf
其他各种奇葩实现:
https://en.wikipedia.org/wiki/One-instruction_set_computer
甚至还有更奇葩的:
https://github.com/jbangert/trapcc
hu8245
2021-07-08 17:10:32 +08:00
换个行业吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/787811

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX