如何学习一门新的语言

如何学习一门新的语言?
1 学习的目的?解决问题。
2 如何解决问题?通过语言本身和通过和语言相关的库。

学习就是学习语言的使用以及库的使用。

  我们一般都学习过一种或者几种语言,从学习语言的过程中我们自己已经摸索出了语言的特征。并且使用它来解决了一些问题。然后我们把这些问题重新提出,用新语言如何解决?这是很好的练习过程。

语言的元素:
语元(在词法分析中叫token),这个是构成语言的基本元素。在不同语言下有不同的规则。语元的种类包含关键字,标识符,符号。要知道这种语言的关键字都有哪些,标识符的构成规则(正则表达式),各种符号的意义。
语法
语言是由语句或者表达式构成(一些函数式语言是由函数和宏构成),这些语句和表达式的结构如何呢?如何使用这些表达式呢?
举个例子:
    if表达式
    在 C/C++ 中
    if-stmt: if exp stmts [else stmts]
    如果 exp 成立则执行stmt,else 部分可以选择有或者没有
    在lisp语言中
    (if cond exp1 [exp2])
    如果cond成立则返回exp1 如果有exp2 则返回exp2 否则返回NIL
    循环
    在C/C++中
    while-stmt: while(exp) stmts
    如果exp 成立则执行stmts直到exp不成立
    而在lisp中使用 loop 宏来实现,语言本身没有提供
当你理解各个语句或者表达式语法的时候,你已经掌握了它的语义。

掌握了这些语句我们就可以解决一些通用的不涉及库的问题,也就是只能运算,而不能输入输出及访问其他设备。这些设备是由特定的操作系统提供访问提,因此那些库就是为了和操作系统或者其他的设施(比如数据库,比如XML等)交互的。
接下来就是练习:
我们要把掌握的语元和语法,把原来的问题实验一下。
1 输入不同的成绩,给出不同的评级。 >90 为[80,90) 为B [60-80)为 C
用C语言就是  
    if(score >= 90) return 'A';
    if(score >=80 && score <90) return 'B';
    if(score >=60 && score< 80) return 'C';
用 common lisp
    (if (>= score 90) 'A'
        (if (and (>= score 80) (< score 90) ) 'B'
            (if (and (>= score 60) (<80 score 80) ) 'C')))
2 打印出9*9矩阵
C/C++
    for(int i=1;i<=9;i++)
        for(int j=1;j<=9;j++)
            printf("%d ",i*j);
lisp
    (loop
        for i from 1 to 9
            do (loop
                    for j from 1 to 9
                        do (format t "~a ")))

库的掌握:参考书,例子程序,实验


    
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值