esoteric-languages - 吃鸡编程你好世界
问题描述
为了“有趣”,我试图理解深奥的编程语言Chicken,但似乎无法理解。Hello World 示例是我试图完全理解的示例。许多网站都引用了torso.me/Chicken,但不幸的是,该网站似乎已关闭。
使用 Esolang 提供的 Hello World 代码,我有几个问题: Q1:在第 12、13 和 14 行有 10、17 和 3 只鸡。这意味着我认为 0 将被压入堆栈,然后 7 将被压入,然后堆栈的顶部两个值将彼此相减,但由于我们压入了 0 和 7,因此将是 7 - 0 = 7. 不能简单地删除第 12 行和第 14 行,还是我的解释完全错误?
Q2:第 57 行有 8 只鸡。所以一个跳转语句。但是对于跳转语句,只有下一行的条件为真。下一行有 11 只鸡,所以只需推动 1,我认为这将永远是真的,这是否意味着它会继续循环?
Q3:我认为我没有从根本上理解一些东西。下面是一个简单的示例代码以及我期望该程序做的事情:
12 Chickens = Push 2 => Stack (bottom to top) => 2
15 Chickens = Push 5 => Stack (bottom to top) => 2 - 5
4 Chickens = multiply => Stack (bottom to top) => 10
11 Chickens = Push 1 => Stack (bottom to top) => 10 - 1
6 Chickens = Load next instructions 0 loads from stack
10 Chickens so load from stack top of stack points to stack index => 10 - 1 - 10
15 Chickens = Push 5 => Stack (bottom to top) => 10 - 1 - 10 - 5
12 Chickens = Push 2 => Stack (bottom to top) => 10 - 1 - 10 - 5 - 2
7 Chickens = Store => Stack (bottom to top) => 10 - 5 - 10 - 2
43 Chickens = Push 33 => Stack (bottom to top) => 10 - 5 - 10 - 2 - 33
9 Chickens = char => Stack (bottom to top) => 10 - 5 - 10 - 2 - 33 - !
任何帮助将不胜感激。
解决方案
推荐阅读
- html - 在我的网站上放低一点的文字
- java - JavaFX逐像素写入bmp图像
- flutter - 使用 showMenu() 时如何处理 PopupMeniItem 按下
- android - 如何知道键盘何时会在 Kotlin 中使用 SearchView 隐藏?
- unity3d - GetSocial 错误:找不到 Android 密钥库
- android - FireBase 数据库的数据输出
- java - 无法获得 com.googlecode.libphonenumber 依赖项以在 intelliJ 模块化项目中与 Maven 一起使用
- c# - 如何将整数添加到数组并获得随机数?
- java - 在不超过堆内存的情况下解决迷宫问题
- c# - 加速 CSharpCompilation.Emit?