免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: vity
打印 上一主题 下一主题

[C++] 我所畅想的 C++ 语言的改进 [复制链接]

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2015-04-16 17:53 |只看该作者
这...编译器您得怎么设计呀

论坛徽章:
0
12 [报告]
发表于 2015-04-20 17:18 |只看该作者
本帖最后由 vity 于 2015-04-20 17:28 编辑
BetonArmEE 发表于 2015-04-16 07:38
支持楼主的2、3、4

对于2,我来演示一下效果 ^_^


谢谢,这个实例让我有了更加直观的认识,推陈出新还是可以有所作为的。

我这几天又重新整理了一下思路,所谓编程语言,用人们的符号告诉计算机去重复计算,其实就是符号约定和符号关系。这些约定尽量要简单化,摒弃复杂的英文语法仅仅是直观体验。

10)由于计算机所理解的逻辑简单,仅“真”和“假”即1和0,如果我们固化逻辑数值,可以使用“真”“假”“空”即{1}{0}{}这三种逻辑,发扬光大就可以让程序随意写了,对于计算机不理解的东西和未知的就置“空”,让“空”参与各种运算,程序永远不出现错误和中断,剩下的问题就是程序的修订了;

11)抛弃”类“的概念,由于类的不断变化,使得程序变得复杂,当前的”类“就是让变量附加一些特性而已;

12)变量可以附加特性(c++谓之”类“),让一个变量在任何需要的时候可以包含不同的字段和字段关系,总之,就是实例的类可以发生变化,以适应新的计算方法;相同特性的变量可以借鉴说明;

13)函数(也称变量之间的关系)计算方法并不指定变量的特性,用以前的话说,就是函数仅仅是表达变量之间的关系,而对于“变量的类型”不作出具体要求,因为如果“变量类型“如果不符合要求,那么就不会得到你要的结果,或者就是”空“;

14)这里我归纳了程序语句执行顺序:串行、并行、条件分支、条件分路、批处理(包含循环)、试探性带错误执行
    a)串行:默认的执行顺序
    b)并行:&!{}[],在大括号中填写任务代码,中括号中填写任务代号[],任务代号用于任务执行情况查询
    c)条件分支:?<>{},尖括号中条件成立,则执行后续大括号中的代码,进一步的询问用双问号
    d)条件分路:#!<given>{<if>{do}},代替c语言中的switch .. case 语句
    e)循环处理:@!()[]<>{},小括号中是待处理队列,中括号是索引和指代名词,尖括号是处理条件,3个条件组和,就包括了目前c语言中的for语句、while语句、foreach语句
    f)试探性错误处理:$!{},如果相应代码出现异常则扑捉,用 $!<>{} 形式来表达
应该说,这些语句顺序涵盖了全部情况。

计算机的计算能力和内存容量越来越庞大,其表达方式就应该越来越简单!让它记住计算结果和计算方法,而人们,则只需要增量地告诉它新鲜元素、计算方法、正确结果,或者修订那些东西罢了。

论坛徽章:
0
13 [报告]
发表于 2015-04-21 22:19 |只看该作者
学楼主这种语言之前,首先得定制一个键盘,不然写代码不快。

论坛徽章:
0
14 [报告]
发表于 2015-04-22 17:37 |只看该作者
本帖最后由 vity 于 2015-04-23 08:51 编辑

总结出来一部分了,先放在这里,等有空进一步深入。

(一)        程序由空间、变量、函数组成的,运行程序就是执行函数的过程,依次执行,;分割语句,{}自动分割

(二)        %声明空间,空间包含变量、函数,%S:space[]表示引用空间space,标记为S,引用子项写在中括号内(逗号分隔),~表示不引用,引用其他空间内的符号时用点号.,空间公开项@

(三)        变量可分为简单变量和复杂变量,简单变量即正整数、整数、小数、浮点数等,复杂变量再次包装简单变量、函数关系,即附加特性项,方式为:{},特性公开项@,封闭公开项@-,=(){}指定变量赋值方法,默认赋值方式用于相同特性项的变量之间复制(待定)

(四)        特性相同的变量可以互相修饰,两种形式,varA varB或者varB:varA{},大括号中给出附加特性说明,赋值时给出参数,需要多参数时按顺序放入小括号内给出,方式var = (para1,para2)

(五)        函数的声明方式为“算法名称(参数名,参数名){}”,形参*,返回%$,并不指定参数类型,因为在参数引用过程中需要变量的特性转化

(六)        变量组声明var[n,m]=((1),(2),(n))1,,,((1),(2),(n))m

(七)        逻辑值“真、假、空”,分别记做“{1}、{0}、{}”

(八)        常见的数学运算方法:赋值=、初级运算+-*/^\、逻辑运算&& || ~、比较运算== ~= < > <= >=、位运算& | ^

(九)        程序标示号&@,线程标识号&$

(十)        并行分支&!{}[],返回线程标识号

(十一)        条件分支?!(condition){} ??(){}

(十二)        举例分支#!<var>{<val>{}}

(十三)        循环分支@!<those>[index,this](condition){},如果没有给出序号指示,则可以无序执行,如果没有实体指示,则依据条件进行无限循环,单项中断%!,全部中断%@,无条件无限循环简写为@!{}

论坛徽章:
0
15 [报告]
发表于 2015-04-22 17:44 |只看该作者
涉及共计 36 个字符。

一、        程序概念;{},包含语句分割、语句段
1        ;
2        {
3        }

二、        空间相关%:[,~].@,包含引用、标记、罗列、不引用、指向、公开
4        %
5        :
6        [
7        ]
8        ,
9        ~
10        .
11        @

三、        变量[]:{}=()@--.EeBb”’,包含数组、解释、赋值、赋值参数、公开、封闭、负号、小数点、指数、位、双引号、单引号
12        =
13        (
14        )
15        –
16        E
17        e
18        B
19        b
20        “
21        ‘

四、        函数(,*){}%$,包含参数列表、参数指代、运算过程、返回指令
22        *
23        $

五、        逻辑值{1}{0}{},包含逻辑真、逻辑假、逻辑空
24        1
25        0

六、        数学运算=+-*/^\&&||~==~=<><=>=&|^,包含赋值、加、减、乘、除、幂、拆、逻辑求且、逻辑求或、逻辑求反、相等、不等、小于、大于、小于等于、大于等于、位求且、位求或、位求异或
26        +
27        /
28        ^
29        \
30        &
31        |
32        <
33        >

七、        程序标识&@&$,包含进程、线程

八、        分支&!?!#!@!%!%@,包含并行分支、条件分支、举例分支、循环分支、循环单次结束、循环全部结束
34        ?
35        !
36        #

论坛徽章:
0
16 [报告]
发表于 2015-04-22 22:06 |只看该作者
真理往往掌握在少数人的手里

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
17 [报告]
发表于 2015-04-23 13:06 |只看该作者
这么多符号,我宁可中间看几个单词。
看了你说的语言,跟我第一次看到brain fuck和fork bomb的感觉一样。
  1. :(){ :|:& };:
复制代码
  1. ,>++++++[<-------->-],,[<+>-],<.>.
复制代码

论坛徽章:
0
18 [报告]
发表于 2015-04-23 22:45 |只看该作者
本帖最后由 vity 于 2015-04-24 21:30 编辑

引入几个英文单词,可读性大幅度提高

#spaceS;
#M:spaceA[arcsin]
a=0;
ch=’\0’;
s=””;
mystring:””; // 定义字符串
mystring=”t”; // 定义字符串,并赋值
mychars[]:’’=[‘t’,’h’,’I’…,’g’];

triangle: {
lineA=3f;
lineB=4f;
@sq:0f;
@square():sq
{
sq=lineA*lineB/2;
return sq;
}

set(la:0f,lb=0f)
{
        lineA = la;
        lineB = lb;
       
        if(lineA == lineB)
        {
                mystring = “equal lines triangle”;
                a = 1;
        }

        case<a>
        {
                <1>mychars[2] = ‘1’;
                <0>mychars[1]=’2’;
                <>mychars[3]=’0’;
        }

        loop<mycahrs>[I,this](this > ‘1’)
        {
                mystring += this;
                if(this > 50) next;
                I++;
                if(this >100) break;
        }
}

get(striangle:{lineC:0f, angle:0f})
{
        striangle.lineC=(lineA * lineA + lineB * lineB)^(0.5);
        striangle.angle = arcsin(lineA / lineC);
}

arcsin(angle:0f)
{
….
}
}

论坛徽章:
0
19 [报告]
发表于 2015-04-24 21:33 |只看该作者
本帖最后由 vity 于 2015-04-28 17:22 编辑

进一步整理的语法和编程要求。最主要的特点是:
1,程序只有变量和函数,没有类型关键字;
2,可以用数值来解释变量,从而使变量具有指定类型的特性,或者已经定义的变量来解释新的变量,变量的特性可以按需要增量解释;
3,变量作用域默认私有,通过修饰词@向外公开,@-关闭公开;
4,变量自定义赋值和取值函数;
5,语句简洁,添加并行分支free语句用于并行计算,条件分支依然采用if..elseif..else模式,switch..case省略为case语句,for、foreach、while三种句式合并为loop一种句式


(一)        程序由空间、变量、函数、代理符号组成的,程序就是执行函数的过程,依序执行,“;”和“{}”分割语句,“// /**/”为通用的两种注释形式,“///”扩展注释形式
(二)        空间包含变量、函数、代理符号,前两项称为实体项,使用修饰符“#”声明空间,定义形式为“#spaceA”,通过修饰符“@”进行公开实体项,代理符号通过修饰符“*”声明,代理实体项的全部功能
(三)        引入空间的书写形式为“#S:spaceA[itemA,!itemB]”,表示引用空间space,标记为S,引用子项写在中括号内(逗号分隔),!表示不引用,实体项的绝对路径使用点号“.”层层递进
(四)        变量可分为简单变量和复杂变量,简单变量即正整数、整数、小数、分数、浮点数,复杂变量是变量和函数的组合,这些组合项被称为特性,子项被称为特性项,特性项通过修饰符“@”公开,已经被公开的特性项可以通过修饰符“@-”停止公开
(五)        变量声明方法有六种,一是直接声明;二是间接声明;三是直接赋值;四是间接赋值;五是赋值函数赋值;六是混合赋值
(六)        变量直接声明,在符号“:”后添加特性,例如varA:{…},特性项应包含赋值函数和取值函数,特性相同的变量成为同特性变量,特性不同的变量成为异特性变量,赋值函数用于变量赋值,取值函数用于异特性变量之间的赋值
(七)        变量间接声明,使用相同特性的变量来解释,例如varA已经声明,使用varA解释varB即可,varB:varA
(八)        变量直接赋值,将一个变量通过“=”赋值,例如:varA={…}
(九)        变量间接赋值,使用指定变量直接赋值,例如varA已经声明,直接用来给varB赋值,varB=varA
(十)        变量赋值函数,在变量的声明中指定赋值函数,通过给赋值函数传递参数的方式,改变特性项的数值,达到变量赋值的目的,例如varA已经声明,赋值函数为set(para1,para2){…},该函数可以根据需要多次定义,那么在声明varB的方式可以为varB:varA=(para1,para2)
(十一)        变量混合赋值,将两种或者多种声明方式进行混合
(十二)        变量取值函数,在变量特性中,添加get函数,当通过该变量为其他异特性变量赋值时,调用该函数,例如声明varA的取值函数get(para1:classC){…},给class1同特性变量varC赋值varC:classC=varA或者varC =varA
(十三)        变量组声明var[n,m]:0=[n行m列参数];
(十四)        函数的声明方式为“Func(para1,para2){…}”,返回指令return
(十五)        逻辑值“真、假、空”,分别记做“{1}、{0}、{}”,空的任何相关操作都返回空
(十六)        常见的数学运算方法:赋值=、初级运算+-*/^\、逻辑运算&& || !、比较运算== != < > <= >=、位运算& | ^
(十七)        并行分支语句free{}[],返回线程标识号
(十八)        条件分支语句if(){}elseif(){}else{}
(十九)        举例分支语句case<var>{<val>{}}
(二十)        循环分支语句loop<those>[index,this](condition){},those是依序被操作的数据列表,在一次循环中,index则指示当前的序号,this指代当前变量,condition则是条件,单项中断next,全部中断break,无条件无限循环简写为loop{}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP