您会选择什么除法运算符符号?

Mac*_*zie 8 programming-languages division operator-keyword

我目前正在设计和实现一种小型编程语言作为我正在上课的额外学分项目.我的问题是该语言有三种数字类型:Long,Double和Fraction.分数可以用适当或不正确的分数(例如"2 1/3"或"1/2")用语言书写.这个事实导致诸如"2/3.5"(长/双)和"2/3"(长/长)等问题无法被词法分析器正确处理.我看到的最佳解决方案是更改除法运算符.到目前为止,我认为"\"是最好的解决方案,因为"//"开始评论.

如果你正在设计语言,你会选择"\"吗?

你会选择其他东西吗?如果是这样,什么?

注意:无法更改分数的分配方式.

在此先感谢您的帮助,

-编辑-

目前的运营商是:

** (功率)

* (乘)

% (模数)

+ (加)

- (减去和否定)

~ (倒数)

! (不)

> (更大)的

< (减)

>= (大于相等)

<= (较少-相等)

== (平等)

<> (不等式)

& (和)

| (要么)

^ (XOR)

?? (空coalesing)

= (分配)

注意:我的老师没有严格的约束要求; 但是,我基本上让他相信我可以将一个简单的分数计算器变成一种语言.更改分数的语法将违反分数计算器的分数语法,最好避免使用.

mpe*_*ez0 9

APL答案是÷.我认为这是可以辨认的.

  • 这将是一个很好的解决方案,但大多数键盘都不支持该字符,这会使语言难以使用. (3认同)

Ped*_*ery 7

你是否允许使用紧凑的if语句

condition ? trueblocks : falseblocks;
Run Code Online (Sandbox Code Playgroud)

在你的语法?如果没有,您可以使用' : '作为除法运算符.毕竟,在这个词的许多(大多数?)地方划分(手工,纸上)的标准数学符号.

  • 以这种方式使用冒号并不排除对三元运算符使用其他东西.Python(和,iirc,Perl)允许你说'trueblock if condition else falseblock`,这是一个非常可靠的替代方案,例如. (2认同)

Fyo*_*kin 6

一个单词"div"怎么样?

  • +1,不是一个坏主意(Pascal方式),但你至少应该使用mul进行乘法运算,否则运算符之间就会出现不一致. (2认同)

dou*_*lep 5

我不太确定是什么问题,因为我不懂语法理论.但我会尝试2_1/3使用下划线而不是空格来改变适当的分数语法,例如.

关于使用\除法运算符 - 我肯定不喜欢它,因为它在每种语言中用作转义字符.我不会推荐这种意义重叠.