Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
8.1.2. 自然语言中的指代词(你、我、他、它等等)好比编程语言中的“指针(point)”。4
8.2. 这类疑问句似乎在编程语言 是包括函数在内的“表达式”。4
11. 一个类型系统。 自然语言中常用’token',编程语言常用‘instance’。5
1. 单词的间隔靠空格,编程的单词的间隔靠分界符..
括号 逗号 stop 句号
2. 语句分界符:自然语言使用逗号,编程语言使用分号
3. 换行
自然语言很少的中间做..编程语言很多中个..
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
4. 段落and fun method
编程靠fun method来定义段落..
5. 上下文相关
编程语言跟个自然语言都是上下文相关的..业务角度...
技术上的ast绝大部分还是上下文无相关的.
6. 操作泛型化
自然语言中存在一些“ 泛义动词 ” ,例如汉语中的“打” , “搞” , “干”„„, 英语中的“ get ” , “ take ”等。它们的进一步的具体含义要由这些动词所涉及 的对象来确定。例如: “打毛衣”中的“打”应理解为“编织” , “打篮球” 中的“打”应理解为“玩” , “打开水”中的“打”应理解为“取得” ,等 等。
l
在面向对
在面向对象的编程语言中,也有类似的“动态绑定(Dynamic Binding)”机 制:一个函数名或者子程序名字的具体含义要在“运行时”依据所涉及对象在当时的指的类型来决定
数据:常数、变量名。它们对应于自然语言中的名词。
l 其他:起连接作用、用来表述token 之间的关系的符号,例如if, then等等。 它们对应于自然语言中的连接词、感叹词等等
7. 动词和名词之间的互换性
在自然语言中,有一个引人瞩目的现象,那就是“名词和动词之间的呼唤性”。这是因为,“词”或者token是用来表达“概念”的,而一个概念往往有多种侧面。所以自然语言中常常出现用同一个“符号”来表达不同的侧面的现象。举例来说: “钉”本来是名词,但是可以转化,作为动词来使用:我把画钉在墙上
函数十编程走十中个.不个fun trans as data..
8. 词类的判断
从语法分析的角度看,对词或 token 进行分类的依据是它的语法功能。从语言使用者的角度看,则是他们的使用方式。因此如何对词或 token所属类别进行判断乃是一件至关重要的事情。
不管在自然语言中,还是在编程语言中,判断一个词或者 token 的类别的办法基本上是两种:词典 和 词本身所携带的形态标志。
词典中提供的信息
在编程语言中,为判断一个 token 的类别而提供的“词典”有两种:
1. 一种是语言中“先验地”规定好了的外部词典。例如关键字和一些保留字。
2. 另外一种是编程人员(用户)临时定义的内部词典,这就是程序中的 declaration.
8.1.1. 词类划分的形式标志
如果能够从词或 token的外形(形式上的)特征就能判断出他是属于哪一类,那么无论从“书写者撰写”的角度,还是从“阅读者理解”的角度,都能够大大减少出错的机会。
在某些编程语言(例如Visual Basic)中,如果一个变量没有在任何地方加以声明,也可以从变量名字的外形上看出它的类型。例如:名字以%结尾的变量是?整数?, 名字以&结尾的变量是?字符串?,名字以&结尾的变量是?浮点数?等等。
英语中,在某种程度上也有类似的机制,例如:以tion, ing 结尾的基本上是名词。以-lize 结尾的基本上是名词。以-ful 结尾的基本上是形容词。以-ly 结尾的大概是副词。
汉语使用方块字,没有办法添加尾缀,所以没有这样的形态标志。因此大家认为,这一现象给汉语的计算机处理增加了困难。不过话不能说得太绝对。在某些情况下,汉语还是有“形态标志”的。例如,在名词的前面加“很”“还”之类一般用来修饰形容词的副词,就是在“形态”上指出:后面的这个名词已经转化为“形容词”了。例子如:“同学们说我穿这条裙子很青春。”,“我们排演的这套节目还是很生活的。”,
8.1.2. 自然语言中的指代词(你、我、他、它等等)好比编程语言中的“指针(point)”。
但是自然语言中从不明显地交待:从现在起,“他”表示“张三”,直到遇见新的声明为止。每一个具体的代词指向何方要根据句子域句子之间的前后语义来联系来判断
8.1. 这类疑问句似乎在编程语言 是包括函数在内的“表达式”。
8.2. 语句分析的“终极”在哪里?
计算机语言的编译器在分析计算机程序中的语句时,最终总是要分析到语法规则中所规定的“终极符(terminator)”为止。
9. 词法检查
从词法的角度,语素和语素合成单词是有一定规则的。例如中文的‘碧’字,作为一个语素,和其它语素结合成单词时有一个限制条件,必须是单音语素。如:碧空,碧蓝,碧绿;但是,碧天空,碧宝蓝等就不合法了。程序设计语言的单词(称作identifier,标识词)也有着类似的严格规定。例如,任何identifier必须以字母或下划线开头,像 bilan、 _blian等就是合法的identifier,而23bilan、@bilan就属于非法的。任何一个identifier中间不能有空格,否则非法
10. 句法检查
从句法的角度,有类似自然语言的条从句:if x < y then print x +y;
意思是,如果两个identifier所代表的数不相等且x小于y,那么,将x所代表的数和y所代表的数相加,然后将结果打印出来。
从语义的角度,任何一个identifier都可以定义为不同的类型。例如 name可以代表‘张三’,age可以代表25
String name = ‘张三’;
程序设计语言中关于语法和语义的定义是非常严格、明确的,不能模棱两可。例如,单复数的定义,
在汉语中,根本就是残缺的,只有在指人类实体是可以‘可选地’用‘们’,而且用法非常复杂。英语简单一些,用加s的方式表达。但有些单词单复数一样,如equipment,有些单词只有复数没有单数,如alms。无法只从形态上判断是单复数。
而程序设计语言就没有这样的问题:
任何定义了品词的identifier都是单数名词。而复数名词则需要一个特定的词类,通常叫做数组,或者叫做’表‘。例如
11. 一个类型系统。 自然语言中常用’token',编程语言常用‘instance’。
这些只是编程语言和自然语言的表面的异同。更本质的共通点,我觉得是二者之间都有一个类型系统。
谈到类型,就要引入另一个术语,自然语言中常用’token',编程语言常用‘instance’。我们经常重复已经说过的话
当然,我们有时需要区分类型和实例。自然语言的办法是加限定词。你的朋友刚想拿一块糖,你说,不是叫你吃这块糖,而是那块(当然在这种情景下必须有身体语言辅助:你得指着某一特定的糖块)。‘这’和‘那’还是很模糊,一定要明确,恐怕就要加更多的限定、形容
12. ref
自然语言与机器语言的比较 南京廖华.htm
自然语言和程序设计语言的某些共通点.htm
Atitit.编程语言and 自然语言的比较and 编程语言未来的发展的更多相关文章
- Atitit 数据库 标准库 sdk 函数库 编程语言 mysql oracle attilax总结
Atitit 数据库 标准库 sdk 函数库 编程语言 mysql oracle attilax总结 1.1. 常见的编程语言以及数据库 sql内部函数库标准化库一般有以下api1 1.2. 各个 ...
- Atitit attilax在自然语言处理领域的成果
Atitit attilax在自然语言处理领域的成果 1.1. 完整的自然语言架构方案(词汇,语法,文字的选型与搭配)1 1.2. 中文分词1 1.3. 全文检索1 1.4. 中文 阿拉伯文 英文的简 ...
- RUST叫系统编程语言,而GO是网络编程语言
用GO你必须要搞清楚一点,GO不是面向CPU密集计算的,而是面向IO密集计算的!!!RUST才是面向CPU密集计算的语言,所以RUST叫系统编程语言,而GO是网络编程语言.GO跟JAVA的Spring ...
- t6_sumdoc
C:\Users\Administrator\Documents\sumdoc 2019\sumdoc t6 final\sumdoc t615C:\Users\Administrator\Docum ...
- Atitit 编程语言原理与概论attilax总结
Atitit 编程语言原理与概论attilax总结 1. 语言的分类1 2. 语言评价标准1 3. 编程语言原理(第10版) 目录: 2 4. 代码之髓:编程语言核心概念2 5. <编程语言实现 ...
- paip.编程语言到底有没有优劣之分优秀之分
paip.编程语言到底有没有优劣之分优秀之分 人有没有优秀之分之分呢??狗有没有优秀之分呢?? 当然是有的,有好人坏人的说法,或者精英平民的区分..狗也有好狗狗,坏狗,疯狗嘛.. 所以,自然,编程语言 ...
- 函数式编程语言(Fuction Program Language)
一.什么是函数式编程语言 函数式编程语言(functional progarm language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型. ...
- 5种最流行的AI编程语言
人工智能如今正是蓬勃发展的时期,许多开发者都在跃跃欲试,如果你写想转做AI相关的开发,那么来了解更多与AI开发有关的内容吧,本文将介绍创建AI程序时可以使用的5种最佳语言. 人工智能如今正是蓬勃发展的 ...
- 准备踏入IT编程的学子们,你们第一门编程语言选谁? Are You Ready? Go!
Are You Ready? Go! ——第一门编程语言选谁? 金旭亮 说明: 这篇文章是专门针对大学低年级学生(和其他软件开发初学者)写的,如果你己经是研究生或本科高年级学生,请将这篇文章转发给你的 ...
随机推荐
- oracle enable / disable all constraint
beginfor i in (select constraint_name, table_name from user_constraints where table_name='') LOOPexe ...
- 【可持久化Trie】模板
总算找到个能看懂的了,orz Lavender. #define INF 2147483647 #define N 100001 #define MAXBIT 31 int root[N],ch[N* ...
- linux-改变文件属主权限-chown
http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID: ...
- Linux中线程的挂起与恢复(进程暂停)
http://www.linuxidc.com/Linux/2013-09/90156.htm 今天在网上查了一下Linux中对进程的挂起与恢复的实现,相关资料少的可怜,大部分都是粘贴复制.也没有完整 ...
- 集群Cluster介绍
来源:http://www.ibm.com/developerworks/cn/linux/cluster/lw-clustering.html简单的说,集群(cluster)就是一组计算机,它们作为 ...
- SHAREPOINT 2013 + PROJECT 2013 资料网站
1.http://technet.microsoft.com/zh-CN/sharepoint 2\ 博客圆专业讲解 http://www.cnblogs.com/jianyus/archive/2 ...
- mysql 中查询一个字段是否为null的sql
查询mysql数据库表中字段为null的记录: select * 表名 where 字段名 is null 查询mysql数据库表中字段不为null的记录: select * 表名 where 字段名 ...
- JS中的Math.pow(a,b)方法
定义和用法 pow() 方法可返回 x 的 y 次幂的值. 语法 Math.pow(x,y) 参数 描述 x 必需.底数.必须是数字. y 必需.幂数.必须是数字. 返回值 x 的 y 次幂. 说明 ...
- solr6.6 配置拼音分词
参考:solr6.6 配置同义词 1.下载拼音分析包 下载地址:pinyin.zip 解压后放在core下面的lib文件夹下面: 2.修改managed-schema配置文件 <fieldTyp ...
- Yii2系列教程三:Database And Gii
上一篇文章我们理了一下Yii2的MVC,Forms和Layouts,这篇文章就直接按照约定来说说Yii2与数据库相关的一些事情,如果你觉得不够的话,不急,更具体的用法我会在后续的教程给出,并且这里也会 ...