哦华为仓颉语言

图片

本来我不太想说的,奈何有不少粉丝提问提到了这语言,目前的情况我不透露太多,看过这课程C++实现一门计算机编程语言到手撸虚拟机实战的懂的自然懂。

在互联网领域几乎大部分应用软件运行在X86 LINUX上居多,如果你有问题可以先学习这个https://www.bilibili.com/video/BV1Dj411d7GQ/?spm_id_from=333.999.0.0

所以本文内容也是居于linux x86环境【阿里云服务器,毕竟用它做服务器居多 互联网公司一般都是X86 指令集架构的居多】来进行测试。

图片

下面是demo示例代码

cjc demo.cj 在LINUX下得到ELF格式可执行文件,内部存储了X86指令和数据main() {    println("Hello, World!")}

编译后得到如下几个文件

图片

图片

生成的ELF文件和X86指令内容

图片

编译后得到的还是共享目标文件,但能直接执行,有兴趣可以自行去了解静态链接,动态链接的区别。

图片

它底层运行时,依然是使用几十年没有变化的系统调用函数和几十年没有变化的X86指令集【感觉是一堆废话,运行在X86 LINUX上当然了,当然也能根据目标机器生成其它架构的代码】

图片

运行它的系统调用过程如下[进程启动到死亡的过程]【所有的编程语言都这样】

[pid 18799] execve("./main", ["./main"], 0x5654ce18e360 /* 24 vars */) = 0//装载ELF文件,将ELF文件的指令和数据添加到进程虚拟内存里[pid 18799] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3//c动态库[pid 18799] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3//不用说了  在LINUX C 课程说这[pid 18799] write(1, "Hello, World!\n", 14) = 14//调用write 系统调用函数 【此函数1991年到今天没有变过】[pid 18803] exit(0)                     = ?//调用exit系统调用函数  退出进程 【进程死亡】此函数同样是1991年到今天没有变过】[pid 18803] +++ exited with 0 +++[pid 18799] exit_group(0)               = ?//同上[pid 18799] +++ exited with 0 +++

上面的系统调用函数在以下课程已经说过,但建议你去实践,技术只来源于实践,不是来源看【纸上得来终觉浅绝知此事要躬行】

图片

https://edu.51cto.com/lecturer/14934648.html

测试了这些,只是想告诉各位一个事实,我讲的PHP多进程,物联网,LINUX C 它们的知识并没有过时,底层的东西依然是一样的东西,但不少程序员长期忽略,物有本末,事有终始,知所先后,则近道矣,底层的东西是核心关键

图片

图片

对于一个后端程序员,必学内功修炼课程和LINUX C 核心高级,千举万变【应用层各种层出不穷的框架和语言】,其道一也【底层】,以不变【底层】应【驾驭理解探索认知】万变【各种应用层的一切语言和框架】。

图片

关于网络编程也是一样的技术,在这里不过多演示了。

虽然如此,但不少程序员还是沉入无穷无尽的编程语言和框架生态中...

图片

物有本【底层】末,事有终【底层】始,知所先【底层】后,则近道矣.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多版本python环境中,让python3固定指向其中一个python可执行文件

如果你只安装一个python环境,那么一般可执行文件名就叫python.exe和pythonw.exe 但是如果你有多个python环境时,可执行文件名是需要进行修改的,使得在安装库和调用时能够分辨python环境,比如我的电脑中装有python3.10和python2.x …

Transformer模型论文解读、源码分析和项目实践

本文是ChatGPT系列的开篇之作,为什么吧Transformer放到这里呢,因为不管是chatgpt-1, chatgpt-2, chatgpt-3都是以Transformer作为底层基础来实现,相当于chatgpt系列的老祖先了。如果想要深入的了解清楚chatgpt的来龙去…

AcWing 4173. 线段 (贪心)

数轴上有 n 条线段,选取其中 k 条线段使得这 k𝑘 条线段两两没有重合部分,问 k 最大为多少。 输入格式 第一行为一个正整数 n; 在接下来的 n 行中,每行有 2 个数 ai,bi,描述每条线段的左右端点坐标。 输…

BUUCTF[堆][of_by_one]

堆中of_by_one 介绍: 严格来说 off-by-one 漏洞是一种特殊的溢出漏洞,off-by-one 指程序向缓冲区中写入时,写入的字节数超过了这个缓冲区本身所申请的字节数并且只越界了一个字节。溢出字节为可控制任意字节 :通过修改大小(size…

token无感刷新方法

1.这里推荐去看这个老师的视频,我的方案都是根据他的视频来的视频地址 2.这边使用的工具是axios import axios from axios const service axios.create({baseURL: ,headers: {Authorization: token 你自己的token,},timeout: 1000 * 60, })// 拦截响应 service.interceptors…

Spring AOP源码篇四之 数据库事务

了解了Spring AOP执行过程&#xff0c;再看Spring事务源码其实非常简单。 首先从简单使用开始, 演示Spring事务使用过程 Xml配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十六章 Linux 第一个程序 HelloWorld

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

S271系列RTU在旅游景区人流监控中的应用案例

S271系列RTU在旅游景区人流监控中的应用案例 随着全球旅游业的迅猛发展&#xff0c;旅游景区的管理者越来越关注如何利用先进的技术手段提升游客体验、优化管理效率以及确保安全。S271系列RTU作为一款先进的无线工业物联网设备&#xff0c;在旅游景区的人流监控中展现出了其独…

数据结构:顺序表+链表

数据结构&#xff1a;顺序表链表 一。顺序表&#xff1a; 首先在了解顺序表和链表之前&#xff0c;先了解一下线性表&#xff0c;**线性表&#xff08;linear list&#xff09;**是n个具有相同特征元素的有限序列 &#xff0c;在逻辑上是线性结构&#xff0c;也就是一条连续的…

自动化升级:Conda包依赖的智能更新策略

自动化升级&#xff1a;Conda包依赖的智能更新策略 引言 在科学研究和软件开发中&#xff0c;依赖管理是确保项目顺利进行的关键环节。Conda作为流行的包管理器&#xff0c;提供了强大的依赖更新功能&#xff0c;帮助用户自动化和简化依赖项的更新过程。本文将深入探讨如何在…

WPF依赖附加属性

依赖附加属性的定义 基本过程&#xff1a;声明、注册、包装 依赖附加属性必须在依赖对象&#xff0c;附加属性不一定&#xff0c;关注的是被附加的对象是否是依赖对象 快捷方式&#xff1a;propa tab 关键字&#xff1a;RegisterAttached // 方法封装 public static int …

Unity3d C#实现基于UGUI ScrollRect的轮播图效果功能(含源码)

前言 轮播功能是一种常见的页面组件&#xff0c;用于在页面中显示多张图片/素材并自动或手动进行切换&#xff0c;以提高页面的美观度和用户体验。主要的功能是&#xff1a;自动/手动切换;平滑的切换效果;导航指示器等。可惜Unity的UGUI系统里没有现成的实现该功能&#xff0c…

第五次作业(多表联合查询)

新增员工表emp和部门表dept create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charsetutf8; insert into dept values (101,财务), (102,销售…

Shell学习——Shell echo命令

文章目录 echo命令 echo命令 1.显示普通字符串: echo "It is a test"这里的双引号完全可以省略&#xff0c;以下命令与上面实例效果一致&#xff1a; echo It is a test2.显示转义字符 echo "\"It is a test\""结果将是: "It is a tes…

掌握MOJO命令行:参数解析的艺术

在软件开发中&#xff0c;命令行接口&#xff08;CLI&#xff09;是一种与程序交互的强大方式&#xff0c;它允许用户通过终端输入指令和参数来控制程序的行为。对于MOJO语言&#xff0c;即使它是一个假想的编程语言&#xff0c;我们也可以设想它具备解析命令行参数的能力。本文…

初识C++【命名空间】【输入输出】【缺省参数】【函数重载】

前言 C是一种通用的编程语言&#xff0c;被广泛用于开发各种应用程序&#xff0c;包括系统软件、游戏、手机应用和高性能计算等。它是C语言的扩展&#xff0c;添加了许多新特性和功能&#xff0c;并支持面向对象编程。C可以在不同的平台上编译和运行&#xff0c;具有高效性、可…

开放式耳机哪个品牌比较好?2024最值得推荐的火爆机型!!

在这个快节奏的时代&#xff0c;我们都在寻找那些既能让我们享受音乐&#xff0c;又能保持对外界感知的音频设备。开放式耳机以其独特的设计&#xff0c;满足了这一需求&#xff0c;它们让你在享受音乐的同时&#xff0c;还能听到周围环境的声音&#xff0c;无论是安全出行还是…

华为、H3C、锐捷、思科四大设备厂商交换机配置命令总结合辑

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好&#xff0c;我的网工朋友。 一直以来&#xff0c;对于华为、H3C、锐捷、思科交换机的命令配置&#xff0c;不断的有朋友留言&#xff0c;四…

OpenSNN推文:盛夏智慧之光:七月高校新闻聚焦

随着夏日的炎炎热浪逐渐升温&#xff0c;七月的校园生活也如火如荼地展开。在这个充满活力的季节里&#xff0c;各大高校不仅迎来了学术交流的高峰&#xff0c;也在科技创新、国际合作等方面取得了显著成就。以下是本月内几所知名高校的重要新闻动态&#xff0c;它们不仅展现了…

数据库 视图

-- 删除旧的视图&#xff08;如果存在&#xff09; DROP VIEW IF EXISTS view_employees_active; -- 创建新的视图 CREATE VIEW view_employees_active AS SELECT id, name FROM employees WHERE status active; 注意事项 如果视图不满足更新条件&#xff08;如包含JOIN、…