cobol语言移植j***a,cobol转j***a

kodinid 10 0

大家好,今天小编关注到一个比较意思的话题,就是关于cobol语言移植java问题,于是小编就整理了2个相关介绍cobol语言移植Java的解答,让我们一起看看吧。

  1. 哪些语言可以写操作系统?
  2. C语言、汇编语言、机器指令、CPU之间是怎么联系起来的?

哪些语言可以操作系统

什么编程语言可以写操作系统

随着计算机技术互联网技术的发展,可以说操作系统已经不仅仅是指的用来管理硬件***的计算程序,Emacs可以算作是操作系统、阿里云飞天也可以算作是操作系统,微信也可以算做是操作系统,从这个意义上讲用来编写操作系统的编程语言也就变得非常多样。

cobol语言移植java,cobol转java-第1张图片-安济编程网
图片来源网络,侵删)

通常意义上的操作系统:汇编、C/c++

通常意义上的操作系统就是用来管理计算机硬件和软件***的计算程序,管理内存处理器等硬件***供需的优先次序、控制输入输出设备、管理文件系统、以及管理网络***,当然一个成熟的桌面操作系统也有出色的人机交互界面

这类操作系统是我们最为熟知的,服务器领域的Unix、Linux,桌面PC操作系统的macOS、Windows移动端的iPadOS、iOS、Android等等,这些操作系统都是我们熟知的。

cobol语言移植java,cobol转java-第2张图片-安济编程网
(图片来源网络,侵删)

Windows使用了一部分汇编语言,大部分是C语言编写,剩下了用了很少一部分C++图形界面,以及极少一部分的C#用来写部分应用程序,当然office、Visual Studio等对性能要求高的应用程序主要还是用C++编写的。

macOS的Darwin内核组成本质是FreeBSD+Mach,主要用C语言和Objective C/C ++(应用程序主要***用Objective-C、swift、C++),最早苹果还用汇编和Pascal写过操作系统,不过后来Pascal被淘汰了。iOS、iPadOS跟macOS非常类似,都是苹果家族的操作系统,基本技术栈和架构都差不多。

Linux因为林纳斯对C++极其厌恶,因此主要是部分***用汇编,大部分***用C语言开发,不过在应用程序层面,Linux选择就非常多,毕竟是开源的操作系统。Python、C++都有***用,比如大名鼎鼎的Linux桌面环境KDE就是用C++编写的,Gnome图形界面则是主要C和部分C++。

cobol语言移植java,cobol转java-第3张图片-安济编程网
(图片来源网络,侵删)

Android系统***用的是Linux内核,因此在底层核心技术栈Android跟Linux差不多,不过Android为了尽快吸引更多开发者、降低开发门槛,在Linux内核基础上多了一层J***a虚拟机,因此Android在应用开发层面主要使用J***a语言。

大名鼎鼎的文本编辑器Emacs最开始就是要做一个操作系统,当年RMS想写一个完整的操作系统来着,当然Emacs也确实可以用来做很多事情,本质上也就是个操作系统。不过由于Linux的发展非常出色,RMS逐渐将Emacs变成了一个文本编辑器,毕竟打造一个操作系统很麻烦。

随着互技术的发展,我们越来越多的说云计算、大数据、物联网,人工智能技术也越来越成熟,很多应用比如微信、支付宝已经变成了一个非常强大的“平台生态”,阿里云飞天更是针对于人工智能和云计算领域的专门的操作系统,这些都可以算作是“操作系统”,因此未来J***a、JavaScript、Go等众多编程语言都可以用来写操作系统。

其实都可以,只是难易程度,效率这些不一样。编程语言只是为了简化编程,最终执行的还是机器语言。操作系统强调效率,程序优化就离不开机器指令。通常可以随便夹汇编的C用得多。

汇编,C,rust都可以。c++很少,而且c++写的都不会运行在内核深处。写操作系统的人都追求一种极致的掌控,语言的一些牛❌特性反而增加了掌控难度,就更别说那些需要虚拟机支持的语言了,看都不看一眼的

C语言、汇编语言、机器指令、CPU之间是[_a***_]联系起来的?

谢邀。

简单说说这几者的关联吧。

通常,C语言程序可被C编译器翻译成汇编语言编写的汇编程序,汇编程序被汇编器翻译成可执行代码,而可执行代码主要包括机器指令及其使用的数据。

举例子吧:

C语言代码:

可被C编译器翻译成汇编代码(以x86 CPU为例):

可以看出,第一行C代码被翻译成两行汇编代码,第二行C代码被翻译成一行汇编代码。C代码和汇编代码没有一一对应关系。

CPU的核心是运算器。

数字电路教材中,讲过加法器,数据选择器,译码器,D触发器,移位寄存器。这些就是运算器的基本构成。

cpu只认识机器码,指令和数据都用机器码序列存储。pc指针指向的当前代码就是下一步要执行的指令。

1 用机器码编程,就是初始程序设计方法

2 机器指令不好记,改用助记符如add类似的符号,好理解多了,这就出现汇编语言和汇编器。

3 还可以更接近数学描述,出现了中级语言b和c语言,有了编译器,有了面向过程结构化程序设计方法。

4 处理字符和人机界面需要,进化出了一大批高级语言,有了面向对象方法。

5 人工智能的进步,有了初步面向问题方法,自然语言编程目前还很幼稚。

现在是4G,第四代语言时代。

CPU的全称是中央处理单元,是计算机进行运算的核心,根据使用的技术不同,CPU又分为X86,X64,ARM、DSP、单片机等不同的体系结构。在每种CPU上都有一套特定的指令集,这就是人们常说的机器指令,直接使用机器指令编写的程序就是机器语言程序。

理论上来说,是可以通过机器语言直接编写任何程序的(早期都是直接使用机器语言编程,那时程序相对比较简单),并且编写的程序可以直接运行,但是使用机器语言编程对程序员的要求极高,代码无法移植且不便于人直接阅读,于是人们发明了一组符号,用来表示这些机器指令,这就是汇编语言。汇编语言编写的程序计算机无法直接运行,需要一个叫做汇编器的程序转换为机器语言才可以在特定机器上运行。

而C语言是比汇编语言更高级的语言,使用C语言编写的程序也是无法在计算机上直接运行的,它需要编译器将C语言代码转换为机器语言,这个过程又分为几个子步骤,见下图

为了使题主的问题更加完善,在这里补充两个概念,链接器与反汇编。

在大型程序中,往往会将任务分解为许多不同的子任务,每个子任务对应一个源文件,在C语言中就是多个C文件,编译器将每个C文件编译成一个目标文件(一般在Windows中是obj文件,Linux中是

.o

文件),这些目标文件也是机器指令,但是缺少一些必要的信息,无法直接运行,需要链接器将这些文件链接起来,再加上一些库文件与可执行文件头信息,成为一个可执行文件(Windows是PE格式,Linux是ELF格式)。

通常,在查看一个二进制文件时(目标文件或者可行性文件),不会直接显示机器指令,而是以汇编语言显示,这是因为此过程中有一个反汇编程序,将机器指令转换为汇编语言,它的功能刚好与汇编过程相反。

到此,以上就是小编对于cobol语言移植j***a的问题就介绍到这了,希望介绍关于cobol语言移植j***a的2点解答对大家有用。

标签: 语言 操作系统 机器