问题标签 [whitespace-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 如何读取空白语言中的字符
我很难理解字符阅读在空白中的工作原理。我能够运行 Hello World 程序。但现在我尝试从用户那里读取一个字符,然后在标准输出上打印它。我没有收到任何错误,一切都编译得很好,但字符没有出现在输出中。我尝试对其进行一些调试,但它在空格中真的很难,我相信它不会打印任何内容,因为我从用户读取的值为 0(或 null)。
这是我阅读角色的方式(我相信它是正确的方式)
这里是打印出来的 SSCCE(这应该可以工作,因为它与 Hello World 项目中的几乎相同。
我正在使用 Whitespace 0.3 和 Haskell 编译器 5.02 版
string - 如何检查一个字符串是否是 WhiteSpace 中另一个字符串的子字符串?
当我看到这个SBStr1时,我正在解决 SPOJ 的问题。我学了一点 WhiteSpace 语言,但我只能达到循环。
谁能帮我检查一个字符串是否有另一个字符串作为 WhiteSpace 中的子字符串?
java - ifeq/ifne JVM 操作码总是分支
[TL;DR:以下 JVM 字节码指令似乎不起作用:
可以在这里找到一个测试 .class (逻辑稍微复杂一些)。如果您想进一步了解我为什么会看到这些说明,请继续阅读。]
我正在编写一个针对 JVM 字节码的空白编译器。尽管是一种深奥的语言,Whitespace 向堆栈机器描述了一组有趣的汇编指令,它很好地映射到 JVM。
空白有标签,它们都是跳转(goto/jump-if-zero/jump-if-negative)和函数调用的目标。相关说明(由我给出的名称,在规范中它们以空格、制表符和换行符的组合形式给出)是:
mark <label>
:为以下指令设置标签jump[-if-neg|-if-zero] <label>
: 无条件或有条件地跳转到给定的标签call <label>
: 调用 label 指向的函数end <label>
: 结束一个函数,返回给调用者。
我的编译器在类的 main 方法中输出整个 Whitespace 程序。最简单的实现方式call
是end
使用JSR
和RET
操作码,它们用于实现子例程。操作后JSR
,堆栈将包含一个returnAddress
引用,该引用应存储在变量中以供以后使用end
。
但是,mark
可以使用call
-ed 或jump
-ed into,堆栈可能包含也可能不包含returnAddress
引用。我决定使用布尔变量(调用位,地址 6)来存储标记是如何到达的,然后测试它是否应该将堆栈顶部存储到局部变量(返回地址,地址 8)中。每条指令的实现如下:
问题:ifeq
总是分支。我还尝试反转逻辑(调用位 -> 跳转位,ifeq->ifne),甚至简单地切换到ifne
(这是错误的)......但 if 总是分支到最后。调用后,returnAddress
留在堆栈中,下一个操作爆炸。
我使用 ASM 的分析器来观察堆栈以调试所有这些,但只是断言了这种行为并且找不到我做错了什么。我的一个怀疑是,我的虚荣哲学可以想象的iinc
更多ifeq
。我承认我只阅读了该项目的指令集页面和ASM 的相关文档,但我希望有人能想到一个解决方案。
在这个文件夹中有相关文件,包括可执行类和原始空白,以及javap -c
ASM 分析的输出。
esoteric-languages - “复制堆栈上的顶部项目”在空白语言中是什么意思?
我正在尝试实现一个空白解释器来获得乐趣,目前我正在按照本教程学习它的语法。
语法看起来很简单,但我不明白“复制堆栈上的顶部项目”是什么意思。这意味着什么?这是否意味着获取堆栈顶部的值并将其保存到特殊寄存器中?
whitespace-language - WhiteSpace 编程语言将两个数字相乘
如何在 WhiteSpace 中将两个数字相乘?
例如
输入:
32 3
输出:
96
我搜索了这个教程,但我没有找到这个
keyboard - CTRL+M 和 Enter 一样吗?
所以,我最近进入了 Whitespace 编程,其中一个字符被列为[LF]
. 不知道这是什么(是的,是的,你想成为一个白痴就对我大喊大叫),我查了一下,在维基百科上发现它可以使用CTRL+M
(又名^M
)输入。所以,我用了一段时间,但是当我回过头去看那篇文章时,如果我没记错的话,它说它LF
也被称为“回车换行”。CRLF
这是否意味着Enter
,从技术上讲,“回车”对于换行符也同样有效?对不起,如果这是一个愚蠢的问题:T
whitespace-language - 空格 - 不打印第二个字符
s = 空间;l = 换行;t = 选项卡
这只会打印F
而不是a
. 我对堆栈不是很确定,这可能与此有关。
visual-studio-code - 如何在 VS Code(或其他文本编辑器)中显示和写入所有不同的空格和控制字符
我希望能够在我的文本编辑器中明确地看到所有空格和控制字符。示例Hi world! This is a new line!
(假设新行实际上在新行上)类似于Hi\sworld!\nThis\sis\sa\snew\sline!
. 或者另一个例子:( Some people like spaces while others... like tabs
假装在三个句点之后有一个标签)将呈现为\s\sSome\speople\slike\sspaces\swhile\sothers...\tlike\tabs
我该怎么做?还有一种方法可以显式输入控制字符,也许使用它们的 Unicode 值?
我相信你们中的一些人会想知道我为什么要这样做。黑客类型会发现内在的吸引力,但除了知道的乐趣之外,如果允许这种显式控制,在 VS Code 中编写像 Whitespace 这样的深奥编程语言会更容易。
所以。可以做到吗?世界上伟大的文本编辑器是否足够强大和灵活以支持这种功能?
sorting - 空格(深奥的编程语言)排序算法
我想在 Whitespace 中实现一个排序算法。如您所知,空白仅使用堆栈和堆。知道哪种算法可以轻松实现吗?