问题标签 [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.

0 投票
1 回答
854 浏览

haskell - 如何读取空白语言中的字符

我很难理解字符阅读在空白中的工作原理。我能够运行 Hello World 程序。但现在我尝试从用户那里读取一个字符,然后在标准输出上打印它。我没有收到任何错误,一切都编译得很好,但字符没有出现在输出中。我尝试对其进行一些调试,但它在空格中真的很难,我相信它不会打印任何内容,因为我从用户读取的值为 0(或 null)。

这是我阅读角色的方式(我相信它是正确的方式)

这里是打印出来的 SSCCE(这应该可以工作,因为它与 Hello World 项目中的几乎相同。

我正在使用 Whitespace 0.3 和 Haskell 编译器 5.02 版

0 投票
1 回答
765 浏览

string - 如何检查一个字符串是否是 WhiteSpace 中另一个字符串的子字符串?

当我看到这个SBStr1时,我正在解决 SPOJ 的问题。我学了一点 WhiteSpace 语言,但我只能达到循环。
谁能帮我检查一个字符串是否有另一个字符串作为 WhiteSpace 中的子字符串?

0 投票
1 回答
2031 浏览

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 程序。最简单的实现方式callend使用JSRRET操作码,它们用于实现子例程。操作后JSR,堆栈将包含一个returnAddress引用,该引用应存储在变量中以供以后使用end

但是,mark可以使用call-ed 或jump-ed into,堆栈可能包含也可能不包含returnAddress引用。我决定使用布尔变量(调用位,地址 6)来存储标记是如何到达的,然后测试它是否应该将堆栈顶部存储到局部变量(返回地址,地址 8)中。每条指令的实现如下:

问题:ifeq总是分支。我还尝试反转逻辑(调用位 -> 跳转位,ifeq->ifne),甚至简单地切换到ifne(这是错误的)......但 if 总是分支到最后。调用后,returnAddress留在堆栈中,下一个操作爆炸。

我使用 ASM 的分析器来观察堆栈以调试所有这些,但只是断言了这种行为并且找不到我做错了什么。我的一个怀疑是,我的虚荣哲学可以想象的iinc更多ifeq。我承认我只阅读了该项目的指令集页面ASM 的相关文档,但我希望有人能想到一个解决方案。

在这个文件夹中有相关文件,包括可执行类和原始空白,以及javap -cASM 分析的输出。

0 投票
1 回答
406 浏览

esoteric-languages - “复制堆栈上的顶部项目”在空白语言中是什么意思?

我正在尝试实现一个空白解释器来获得乐趣,目前我正在按照本教程学习它的语法。

语法看起来很简单,但我不明白“复制堆栈上的顶部项目”是什么意思。这意味着什么?这是否意味着获取堆栈顶部的值并将其保存到特殊寄存器中?

0 投票
1 回答
277 浏览

whitespace-language - WhiteSpace 编程语言将两个数字相乘

如何在 WhiteSpace 中将两个数字相乘?

例如

输入:

32 3

输出:

96

我搜索了这个教程,但我没有找到这个

0 投票
1 回答
1426 浏览

keyboard - CTRL+M 和 Enter 一样吗?

所以,我最近进入了 Whitespace 编程,其中一个字符被列为[LF]. 不知道这是什么(是的,是的,你想成为一个白痴就对我大喊大叫),我查了一下,在维基百科上发现它可以使用CTRL+M(又名^M)输入。所以,我用了一段时间,但是当我回过头去看那篇文章时,如果我没记错的话,它说它LF也被称为“回车换行”。CRLF这是否意味着Enter,从技术上讲,“回车”对于换行符也同样有效?对不起,如果这是一个愚蠢的问题:T

0 投票
1 回答
45 浏览

whitespace-language - 空格 - 不打印第二个字符

s = 空间;l = 换行;t = 选项卡

这只会打印F而不是a. 我对堆栈不是很确定,这可能与此有关。

0 投票
1 回答
1581 浏览

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 这样的深奥编程语言会更容易。

所以。可以做到吗?世界上伟大的文本编辑器是否足够强大和灵活以支持这种功能?

0 投票
0 回答
25 浏览

sorting - 空格(深奥的编程语言)排序算法

我想在 Whitespace 中实现一个排序算法。如您所知,空白仅使用堆栈和堆。知道哪种算法可以轻松实现吗?