当前位置: 首页 > news >正文

青岛建设银行网站政府免费培训面点班

青岛建设银行网站,政府免费培训面点班,合肥市住建局官方网,百度云网盘网页版登录解释语言和编译语言 编译语言,是指其编译器生成的可执行文件为机器码,可以直接在计算机上运行的语言,比如说 C/C \texttt{C/C} C/C 。 解释语言,是指经由解释器生成的可执行文件为字节码文件,只能运行在特殊的虚拟机…

解释语言和编译语言

编译语言,是指其编译器生成的可执行文件为机器码,可以直接在计算机上运行的语言,比如说 C/C++ \texttt{C/C++} C/C++

解释语言,是指经由解释器生成的可执行文件为字节码文件,只能运行在特殊的虚拟机上的语言,比如 Java, Javascript, Python, C# \texttt{Java, Javascript, Python, C\#} Java, Javascript, Python, C#

就现代而言,这两种语言并没有严格的划分,比如存在技术使得 Java \texttt{Java} Java 可以生成机器码,直接运行。

两者的优越点比较

  • 编译语言因为可以生成 CPU \texttt{CPU} CPU 可以识别的机器码,所以一般来说,运行速度会快于解释语言,读者可以用 Java \texttt{Java} Java 以及 C++ \texttt{C++} C++ 分别编写一个基于循环的计算斐波那契数列的,不使用代码优化的程序,比较一下运行的效率。
  • 一般来说,编译语言会将内存管理暴露给编写程序的人,往好的说,这可以使人们更自主地管理内存,但是需要人们避免自己编写的代码存在内存泄漏,而这往往会增加代码的复杂度。而解释语言会在解释器/虚拟机中实现内存管理,一般来说会有 GC (Garbage Collection) \texttt{GC (Garbage Collection)} GC (Garbage Collection) 机制,较少出现内存泄露。

接下俩,我们将不会区分编译和解释这两个概念,将以统一定义为将程序源文件翻译为可执行文件的过程。

本系列博客目标

使用 C/C++ \texttt{C/C++} C/C++ 实现一个简单的解释器和对应的虚拟机,包含最简单的 GC \texttt{GC} GC,参照 C++, Java \texttt{C++, Java} C++, Java ,支持一个简单的支持面向对象,支持多文件编译的语言。

语法规则

类型系统

基本类型支持 char, int32, int32, uint64 (unsigned int64), float64。同时,可以使用 class type 定义自己的类型。

变量和数组的定义

var type var1, var2; // 定义两个类型为 type 的变量,名字为 var1, var2
var type[] arr1, ...; // 定义若干个类型为 type[] 的一维数组,名字为 arr1
//下面是一些具体的例子
var int a = 10, b = 114;
var int[] arr;
var float64[][] farr;

计算式/表达式

参照 C/C++ \texttt{C/C++} C/C++ 的运算符表,将强制类型转化改为 =>, 不支持自增,自减,不支持三目运算符,不支持连续赋值。

流程控制

if (expression1) {do something
} else {do something
}
if (expression2) do something
while (expression1) {do something//支持 break 和 continue
}
for (var int i = 0; i < n; i = i + 1) do_something

函数

支持全局函数和类的成员函数,支持区分不同参数表的同名函数

[private/public/protected] func type func_name(type arg1, type arg2...) {return ;
} 

类和对象

参照 Java \texttt{Java} Java

class A {public int member1;private int member2;protected int member3;public func int GetMember1() { return }func __init__() {member1 = 1;member2 = 2;}
}
class B :: A {func __init__() {super();member3 = 3;}
}
//新建对象
var A a = A(), c = $A;
var B b = B();
//父类变量可以存储子类的值
a = b;
//下列写法不合法
b = a;//新建数组
var A[] a = $A[size]
var B[][] b = $B[size][size]
//注意,这里数组中的元素都没有执行构造函数,默认是null

命名空间

using space1::space2::space3;
namespace space1::space2 {...
}
namespace space1 {...
}
http://www.mmbaike.com/news/32322.html

相关文章:

  • 电子商务网站seo希爱力副作用太强了
  • 一品威客网是做啥的网站小说关键词生成器
  • aspcms 网站搬家提升关键词
  • 如何做网站301重定向seo诊断站长
  • wordpress链接数据库文件seo关键词优化排名软件
  • 公司企业邮箱登录海外网站推广优化专员
  • 临湘网站网上销售培训课程
  • 潍坊优化网站排名靠前苏州网站建设书生
  • 陕西手机网站制作seo会被取代吗
  • 关于计算机网站建设的论文网站关键词排名优化价格
  • 可以在哪些网站 APP做推广短链接购买
  • 网站如何做中英文效果上海专业的seo推广咨询电话
  • 纯文本网站个人网站建设
  • 哪些做园林的网站网站推广平台
  • 网站推广服务网站连锁企业网站制作步骤
  • 淄博知名的做网站推广茶叶网络营销策划方案
  • 网站设计的思想学生没钱怎么开网店
  • python网站开发学习全网推广哪家正宗可靠
  • 比较好的网站建设平台广告推广赚钱在哪接
  • 怎么做单向网站链接百度电话销售
  • 做影视网站用什么源码网络推广工作室
  • ao主题wordpress上海百度移动关键词排名优化
  • 网站建设的流程怎么写青岛网站建设方案服务
  • 做网站会遇到什么问题中国做网站的公司排名
  • 一起做网店类似网站网页设计教程
  • 天津建委招标网站推广排名seo
  • 租赁网站开发网站搭建外贸
  • 医院网站建设招标微指数查询
  • 广西优化网站 优帮云兰州网络推广
  • 做淘宝要用到哪些网站网络运营师