对于语言的理解

本文来聊聊语言,笔者前后已经接触过近10种编程语言,回过头想想,才慢慢的了解编程语言的本质。

按个人理解,编程语言和自然语言(指人类交流语言,如汉语,英语)本质上并无区别。为什么?用看程序语言的方式看自然语言,那么:自然语言有很多个关键字或者说全局变量(各种词语、单词),这些关键字经过一定的语法排列最终可以形成各种句式,通过这些句式可以实现人与人之间的交流。自然语言也可以定义“变量”,也就是造新词,只不过现在自然语言的词库已经很庞大了,基本不需要新的词语。

编程语言与自然语言的区别一个是前面说的关键字与全局变量的数量,还有一个就是人为理解的速度。自然语言学的比较慢,因为有大量的“关键字”,但是一旦学成,别人说的话你基本可以立即反应过来对方在说什么;而程序语言,需要多行代码才能做好一个模块功能,人为来理解一段代码的话至少需要几秒钟的时间。

以上算是个人对于语言的一点小小的心得,可能有描述的不到位的地方,也可以当成笑话来看。

写这篇文章是激励自己学习英语以及以后学习其他国家语言的。学程序语言到后面避免不了要看英文文档。笔者学习各种编程语言很有兴趣,但心里曾经十分反感学习自然语言,但是有了上面这些理解后,觉得自然语言也不过是种语言而已,所以本文也可以给那些程序语言学的“差不多”但是对外语比较反感的同行,愿共同进步。

时间: 2024-11-08 18:23:56

对于语言的理解的相关文章

《七周七语言:理解多种编程范型》のIo课后习题答案

哎,因为上周忙着写OAuth2.0服务端框架草稿 ,耽误了一周学习Io Language了. 本篇习题解答是接着 <七周七语言:理解多种编程范型>のRuby课后习题答案 Io是原型语言,类似于JavaScript,并不区别类和对象,所有的东东都是对象,对象的数据结构就是由键值表来维护的(在Io中就是所谓的槽),通过各种消息传递给对象来实现打印输出,复制对象等功能.因为语法非常简单(也木有语法糖),所以你可以尽情构建自己的库和功能. 第一天: 1. 对1+1求值,然后对1+"one&q

ios-(2)第一个C语言程序(理解编译、连接、运行)

一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用XCode新建一个C程序的源代码文件(扩展名为.c或者.C) # 开发XCode # 新建文件 # 选择文件类型 .c 二.代码编写 1.程序结构 * C程序的结构:由函数组成 # 任何一个C语言程序都市有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为"函数&q

堆栈--java语言的理解

堆栈 1,概要 堆栈是两种数据结构.堆栈都是一种数据项按序排列的的数据结构,只能在一端进行(称为栈顶(top))对数据项进行插入和删除. 要点:堆,列队优先,先进先出.栈,后进先出(Last-In/ First-Out). 2,对比(Java语言) 1.栈(stack)和堆(heap)都是java用来在Ram中存放数据的地方. 2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小和生存期必须是确定的,缺乏灵活性.另外,栈数据可以共享.堆的优势是,可以动态

《七周七语言:理解多种编程范型》のruby课后习题答案

本系列是<七周七语言>的课后习题答案.这本书不拘泥于语法细节,而是横向比较各种编程语言(非热门)之间的编程范式. 是本对编程觉悟能有所帮助的好书,这里就不多做介绍了,感兴趣的同学不妨去看一下. 不得不说,Ruby的风格很黑客. 1. 打印字符串"Hello, world." puts "Hello, world." 2. 在字符串“Hello, Ruby.”中,找出"Ruby."所在下标. puts "Hello, Ruby

C语言指针理解patr1

今天在看<Head First C语言>中,书中的代码是*lat=*lat+1;我则写成了*lat++:结果是并不能得到lat指针的内容加一.之后发现原来在C语言中*解指针运算符 与++后自增运算符的优先级是相同的,*p++,后自增运算符++只作用于p,并不能作用于*p(如果*的优先级更高的话才行). 之后在调试中又发现了一个之前不了解的地方,在C语言中栈的存储是向低地址扩展,也就是先声明的变量在内存中反而内存地址是更大的. 1 #include <stdio.h> 2 void

对C++不是类型安全语言的理解

参见脚本之家:http://www.jb51.net/article/37847.htm 在C++中,可以把0当成bool类型的false,也可以当做int中的数字0.则表示C++不是类型安全语言. 类似的,MFC中的CString也不是类型安全的类.因为其他类型的数据可以通过CSting中的成员函数Format转换成CString. 1 #include<iostream> 2 3 using namespace std; 4 5 bool fun()//函数返回类型是bool,但是我们在函

C语言的理解

指针 C语言中的两个符号"*"  "&" 分别是间接表示符,地址表示符. 我们都知道,计算机是通过地址来寻找变量的值的,因此我们可以认为是地址间接表示了变量的值,变量名是直接表示变量: 像int *p 这样的声明,表示 *P是我们常用的变量,去掉*,即p表示的是一个地址. 结构数组 int float 等是C语言一开始就定义好的一种数据类型,功能比较单一. 那么我们可以通过结构数组来设计自己的数据类型. 即: struct name { } 这样就设计好了一

七周七语言:理解多种编程范型pdf

下载地址:网盘下载 作者简介  · · · · · · 作者简介: Bruce A. Tate RapidRed公司总裁,该公司主要为Ruby轻量级开发提供咨询.他曾任职于IBM公司,并担任过多家公司的客户解决方案总监和CTO.著作有十余本,包括荣获Jolt大奖的Better, Faster, Lighter Java. 译者简介: 戴玮 80后宅男,中科院自动化所在读博士,热爱机器学习与计算机视觉.编程喜C#.Ruby.Haskell而厌Java. 白明 Neusoft某开发部技术总监,拥有多

《OpenGL着色语言》理解点记录三

“帧缓冲区”中的“帧”的含义? “帧”是连续图像中的一幅,3D可视化程序最终都是转化为一幅幅的图像输出在显示器上,这一幅幅的图像叫做叫“帧”. 解释“glBlendFunc(GL_SRC_ALPHA,GL_ONE);”的含义. 假定源颜色值为(0.3,0.4,0.6,0.5),目标颜色值为(0.5,0.8,0.3,1.0),OpenGL则首先获得源物体的alpha值0.5,用它做混合因子,乘上源物体的各颜色分量,得到(0.15,0.2,0.3),然后选择1作为目标混合因子乘上目标物体各颜色分量得