- UID
- 418
- 精华
- 积分
- 3994
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
发表于 2016-1-16 02:03:49
|
显示全部楼层
不行,我不开心,应该把pb列出来。
pb不能委屈在other里边。
pb真的我用起来相当顺手。
非常好的编译器、库。
我想借此机会为basic语言家族拉几票。
有人将basic语言语法冗长。什么鬼!什么语法冗长!这是basic的优美。
//以下C代码纯粹瞎写,为的是展现格式
int i,b,c;
float f,g,h;
int fun(int a, float b)
{
while (i == 0)
{
for (b = 1; b <= 10; b++)
{
if (c == 3)
i = 4;
else
{
switch (c)
{
case 0:
c++;
break;
case 1:
goto Escape_While_loop:
break;
default:
goto Escape_For_loop:
}
}
}
Escape_For_loop:
}
Escape_While_loop:
return 0;
}
'pb代码,功能与上述C相同:
dim i as integer, b as integer, c as integer, f as single, g as single, h as single
function fun(a as integer, b as single) as integer
do while i = 0
for b = 1 to 10
if c = 3 then
i = 4
else
select case c
case 0
c += 1
case 1
exit do
case else
exit for
end select
end if
next
loop
function = 0
end function
反正呢,面对成百上千行,甚至上万,上十万行代码,如同自然语言英语的basic让我更容易找bug
我在写大量C的时候,不得不使用很多SAL(这TM何必呢)
总之C也不错,很简练(我没说功能很强大,注意pb也有指针)
但是pb是我的菜
你看,在C中,basic的then endif function end function 都是用大括号替代的
好处当然是简略了。但是有没有想过,在无ide的情况下括号匹配很难被肉眼看出(代码量大后)
我曾经设计过一种语言,形如modula-2,也就是将end if简写为end,end function 也简写为end。编译器完全可以识别
//cyy modula-2
function fff()
if aaa then
bbb
else
ccc
end
end
但是会怎样?和C一个毛病,不易匹配结构。
如果我设计成pascal
function fff()
var
xxx:aaa;
begin
if aaa then
begin
bbb;
ccc;
end
end
又要被批评“语法冗长”。
行了,在此我要对那些“语法冗长”党说一声:
如果你用的类C语言括号不匹配,而恰恰编译速度慢,又没ide。等屎吧各位。
每编译一次弹出一个缺少括号error,然后修改再编译再等个n长时间。
basic不是一个“初学者”代码
而是借鉴了很多失败语言的经验,设计精良的结构化语言! |
|