Programming languages 是否存在名称可以包含空格字符的语言?

Programming languages 是否存在名称可以包含空格字符的语言?,programming-languages,compiler-theory,Programming Languages,Compiler Theory,有没有允许名称包含空格的编程语言?(通过名称,我想要变量、方法、字段等)在Ruby中,您可以将符号命名为:“this has a space”,但它用双引号括起来,所以我不确定您是否计算了它 如果其他语言允许空格作为符号名称中的有效字符,则必须使用其他字符来分隔它们。变量名称中的空格的问题是,它需要解释,因为空格通常表示“确定,当前标记的结束,开始另一个标记。”此规则的例外必须有一些特殊的指示符,例如字符串中的引号(“这是一个测试”) PHP可以: Perl还: ${'some var'} =

有没有允许名称包含空格的编程语言?(通过名称,我想要变量、方法、字段等)

在Ruby中,您可以将符号命名为
:“this has a space”
,但它用双引号括起来,所以我不确定您是否计算了它


如果其他语言允许空格作为符号名称中的有效字符,则必须使用其他字符来分隔它们。

变量名称中的空格的问题是,它需要解释,因为空格通常表示“确定,当前标记的结束,开始另一个标记。”此规则的例外必须有一些特殊的指示符,例如字符串中的引号(“这是一个测试”)

PHP可以:

Perl还:

${'some var'} = 42; print ${'some var'}, "\n"; ${'my method'} = sub { print "method called\n"; }; &${'my method'}; ${'somevar'}=42; 打印${'some var'},“\n”; ${'my method'}=sub{ 打印“调用的方法\n”; }; &${'my method'}; 我们的并行编程语言就是这样一种。事实上,它允许标识符中的任何字符,尽管其中许多字符(包括空格)必须转义(前面加~)才能包含在名称中。下面是一个例子:

         ~'Buffer~ Marker~'
这可以让PARLANSE轻松引用其他语言中的任意符号(特别是从任意引用文档中获取的EBNFs中,我们无法控制使用的标点符号)


我们不经常使用此功能,但当需要时,这意味着我们可以忠实于其他文档中的标记。

您可能会在该网站上找到不使用空格分隔表达式元素的深奥语言:


例如…:一些SQL方言允许数据库、表和字段的名称中有空格


例如,在SQL Server中,您可以引用名称中带有空格的表,方法是将表名放在
[方括号]
中,或者(根据连接选项)放在
中的“双引号”

中,在SQL中,字段名中可以有空格和其他非标识符字符等。您只需引用它们,如
[field name]
“field name”

Scala允许在标识符名称中使用空格字符(但要做到这一点,您需要用一对反勾来环绕标识符)

示例(在Scala REPL上执行):


如果使用管道(|)围绕变量名,则Common Lisp可以使用变量:

值得注意的是,“管道”变量名也区分大小写(这些变量名通常不在CL中)


创建支持标识符中空白的语言应该不会有太多问题,只要有足够多的分离标记,表示标识符结束的解析器(例如运算符、大括号、逗号和臭名昭著的分号)。它只是没有太多地提高源代码的可读性。

最近的创新和实验性web脚本(子)类型的JavaScript:

变成

windSpeed = 25
averageTemperature = 32
在屏幕后面。还提供了灵活的返回变量定位规则,以便您可以:

y = compute some value from (z) and return it
md5 hash (read all text from file "sample.txt")
变成:

var y;
y = computeSomeValueFromAndReturnIt(z);
md5Hash(readAllTextFromFile("sample.txt"));

只是好奇。。。你为什么想要它?如果你对在源代码中添加更多的空白感兴趣的话,看看这个:我本来想提到空白,但它看起来没有名字。Prolog是另一个允许像“this that”这样的带引号的字符串以与标识符相同的方式使用的字符串,正如人们已经注意到的Ruby、SQL等。我只在Microsoft产品中见过方括号约定。是否还有其他人使用它,或者他们大多使用我经常看到的双引号?引号是ANSI标准SQL,但我相信括号是从Sybase继承的。这就是为什么SQLServer使用它们,而Access不使用它们。
wind speed = 25
average temperature = 32
windSpeed = 25
averageTemperature = 32
y = compute some value from (z) and return it
md5 hash (read all text from file "sample.txt")
var y;
y = computeSomeValueFromAndReturnIt(z);
md5Hash(readAllTextFromFile("sample.txt"));