首页 > 编程语言 >程序是在何种环境中运行的

程序是在何种环境中运行的

时间:2024-02-27 15:59:07浏览次数:28  
标签:硬件 Java 操作系统 环境中运行 代码 程序 何种 源代码

程序中包含着运行环境这一内容。操作系统和硬件决定了程序的运行环境。同一类型的硬件可以选择安装多种操作系统。从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。CPU只能解释其自身固有的机器语言。不同的CPU能解释的机器语言也是不同的。机器语言的程序被称为本地代码。程序员用C语言等编写的程序,在编写阶段,仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。
计算机的硬件并不仅仅是由CPU构成的,还包括用于存储程序指令和数据的内存,以及通过I/O连接的键盘显示器,硬盘,打印机等外围设备。Windows操作系统对克服这些硬件构成的差异做出了很大的贡献。在 Windows 的应用软件中,键盘输入、显示器输出等并不是直接向硬件发送指令,而是通过向 Windows 发送指令来间接实现的。因此,程序员就不用注意内存和 I/O 地址的不同构成了。
同样机型的计算机,可安装的操作系统类型也会有多种选择。应用软件则必须根据不同的操作系统类型来专门开发。CPU 的类型不同,所对应的机器语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也是不同的。应用程序向操作系统传递指令的途径称为 API。在同类型操作系统下,不管硬件如何,API 基本上没有差别。
Unix 系列操作系统 FreeBSD 中,存在一种名为 Ports 的机制。该机制能够结合当前运行的硬件环境来编译应用的源代码,进而得到可以运行的本地代码系统。如果目标应用的源代码没有在硬件上的话,Ports 就会自动使用 FTP连接到相关站点来下载代码。全球很多站点都提供适用于 FreeBSD 的应用源代码。通过使用 Ports 可以利用的程序源代码,大约有 16000 种。这些代码还被按照不同的领域进行了分类整理,可以随时拿来使用。FreeBSD 上应用的源代码,大部分都是用C语言来记述的。FreeBSD 等 Unix 系列操作系统中,都带有标准的 C 编译器。C 编译器可以结合 FreeBSD 的运行环境生成合适的本地代码。
即使不通过移植,也可以使用别的方法来运行其他操作系统的应用。[11]Macintosh(统称为 Mac)是美国苹果公司生产的计算机。
除虚拟机的方法之外,还有一种方法能够提供不依赖于特定硬件及操作系统的程序运行环境,那就是 Java。大家说的 Java,有两个层面的意思。一个是作为编程语言的 Java,另一个是作为程序运行环境的 Java。同其他编程语言相同,Java 也是将 Java 语法记述的源代码编译后运行。不过,编译后生成的并不是特定 CPU 使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为 Java 虚拟机。Java 虚拟机是一边把 Java 字节代码逐一转换成本地代码一边运行的。虽然这样看起来 Java 虚拟机全是好处,但其实也有不少问题。其中一点就是,不同的 Java 虚拟机之间无法进行完整互换。另一点就是运行速度的问题。
程序的运行环境中,存在着名为 BIOS的系统。BIOS 存储在 ROM 中,是预先内置在计算机主机内部的程序。引导程序是存储在启动驱动器起始区域的小程序。

标签:硬件,Java,操作系统,环境中运行,代码,程序,何种,源代码
From: https://www.cnblogs.com/duyan123/p/18037003

相关文章

  • 使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例
    本章主要和大家分享下如何使用cmd命令行(.NETCoreCLI)来启动ASP.NETCore应用程序的多个实例,以此来模拟集群。.NETCore命令行接口(CLI)工具是用于开发、生成、运行和发布.NETCore应用程序的跨平台工具链。CLI命令结构包含驱动程序(“dotnet”)和命令,还可能包含命令参数......
  • 《程序是怎样跑起来的》第十章
    为每个本机代码的指令分配一个英语缩写来表示其功能,这些英语缩写被称为助记符,使用助记符的编程语言被称为汇编语言。将汇编语言编写的源代码转换成本机代码运行,完成这一功能的程序叫做汇编器,这一过程叫做汇编;反过来转换的程序叫做反汇编器,过程叫做反汇编。汇编语言的源代码中的指......
  • 《程序是怎样跑起来的》第四章
    读书笔记:4.1:高级编程语言的数据类型表示其占用内存空间的大小,以及存储数据的格式。内存本质上是一种名为内存芯片的装置。内存芯片分为RAM、ROM油等不同类型,但从外部来看,它们的基本原理是相同的。内存芯片上有很多引脚,这些引脚负责连接电源,以及输入输出地址信号、数据信号和控制信......
  • Qt 编写的qml程序全屏时,挡住系统虚拟键盘的解决办法
    官方有提到该问题。尤其是使用qml时,一定会出现这个遮挡问题。https://doc.qt.io/qt-5/windows-issues.html 默认的qml工程的解决代码如下:1...2#include<QWindow>3#include<QtPlatformHeaders/QWindowsWindowFunctions>4...56intmain(intargc,char*arg......
  • 《程序是怎样跑起来的》第四章读后感
    这章读完之后,我知道了许多东西,同时对计算机有了更深入的了解。10根地址信号引脚能够表示2的十次方=1024个地址;在内存地址为32位的环境中,指针变量的长度是32位(指针变量存储的内容是内存地址);长度为1字节的数据类型的数组和内存的物理结构是相同的。以LIFO方式读写数据的数据结构叫栈......
  • 《程序是怎样跑起来的》第十二章观后感
    我是计应232的学生张凯源,今天来分享《程序是怎样跑起来的》第十二章观后感。最后一章讲了让计算机“思考”,计算机是机器,它本身是肯定不会思考的,但是程序员敲的代码可以让它像是在“思考”。计算机中的程序使用目的可以分为两类:一类是大家作为工具来使用的程序,例如文字处理程序。......
  • 免费集成-下载移动应用程序小工具
    推荐一个好用的、可以免费集成到网站的小部件。以下是具体内容。通过免费集成提高下载率。免费的网站小部件,您只需要简单的复制粘贴即可集成到您的网站中,以此来提高您的网站开发和下载效率。示例:为什么选择这个的插件:下载率提高了20%:我们的插件改变了游戏规则,带来了实实在......
  • C#程序全局异常处理—WPF和Web API两种模式
    C#程序的全局异常处理,网上搜下资料都是一大堆,我这里最近也是独立做一个B/S结构的小项目,后面又增加了需求用WPF实现相同的功能,这里将我所使用的全局异常处理方式做一个简短的总结分享。WebAPI项目的全局异常处理这种项目下,我们可以直接自定义一个全局异常的过滤器,用来处理全局......
  • 《程序是怎样跑起来的》第二章
    本章主要讲了用二进制来理解数据。上一张在介绍标志寄存器时提到了比特这个词,计算机处理信息的最小单位是比特,它相当于1位二进制数。1比特代表一位二进制数,由于8比特等于1字节,所以32比特就是4字节。二进制数左移一位,结果变成原来的2倍,因此左移两位就会变成原来的4倍。在2的补码形......
  • 【用vue开发微信小程序】(uni-app)(自用,不推荐参考)
    【用vue开发微信小程序】(uni-app)(自用,不推荐参考):https://blog.csdn.net/sp_zhaoyun/article/details/126054403?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-17-126054403-blog-130321374.235%5Ev43%......