C/C++开发工具8cc、rt0、C4、saf application framework介绍

以下为你介绍的C/C++开发工具都可用在Linux系统上:8cc(小型的 C 编译器)、rt0(C 运行时)、C4(C 语言编译器)、saf application framework(高并发C++应用程序框架)。

1、8cc(小型的 C 编译器)

C/C++开发工具8cc、rt0、C4、saf application framework介绍

8cc 是一个小型的 C 编译器,支持所有 C11 语言特性。而且该编译器可以编译自身。您可以将其代码视为C语言的实现,以及该编译器可以编译的示例。

8cc的源代码经过精心编写,以尽可能简洁和易于阅读,因此该源代码成为学习有关编译器中使用的各种技术的很好的学习材料。您可能会发现词法分析器,预处理器和解析器对于了解如何在每个阶段处理C源代码已经很有用。

8cc仅支持x86-64 Linux。在修复所有已知的错误编译并实现优化通过之前,我没有计划使其可移植。从2015年起,我将Ubuntu 14用作开发平台。不过,它应该可以在其他x86-64 Linux发行版上运行。

建立:

运行make构建:

make

8cc带有单元测试,要运行测试,请给“test”作为参数:

make test

下面的目标生成了8cc三次,以验证stage1编译器可以构建stage2,stage2可以构建stage3。然后,它逐字节比较stage2和stage3二进制文件,以验证我们是否达到了固定点:

make fulltest

下载地址:https://github.com/rui314/8cc

2、rt0(C 运行时)

rt0 是一个非常小的 C 运行时,用于 Linux i386/x86_64。已在RHEL 7、Ubuntu 14.04、i386/i686、x86_64上进行测试。

特性:

仅仅 87 SLOC 实现。

仅仅 2 行 GCC 嵌入 ASM  for i386。

仅仅 6 行 GCC 嵌入 ASM for x86_64。

Small runtime providing just argc,argv,envp,__environ,_exit,and syscall0/1/2/3/4/5/6。

Small binary sizes vs. other libc's。

下载地址:https://github.com/lpsantil/rt0

3、C4(C 语言编译器)

4个函数实现的c编译器,大约500行。基本上已经比较完备了,可以自己编译自己。

使用方法:

gcc -o c4 c4.c  (you may need the -m32 option on 64bit machines)

./c4 hello.c

./c4 -s hello.c

./c4 c4.c hello.c

./c4 c4.c c4.c hello.c

下载地址:

4、saf application framework(高并发C++应用程序框架)

saf (saf application framework) 是一个高并发的c++应用程序框架,它以RPC为基础,提供了动态载入模块的特性,为服务端开发人员只用关注于程序的业务逻辑,就可以实现远程方法调用,而不会关心底层的通信细节,另外,它还内置了一个简单的http server,用来查看服务器的运行状态。

特点:

1]:基于 google protobuf 的 RPC 框架。

2]:内置简单的http server用于查看系统状态。

3]:模块化的管理,只用在lib中增加动态库就可以达到增加rpc service的目的。

结构:

C/C++开发工具8cc、rt0、C4、saf application framework介绍

编译例子:

1]:下载源码,它依赖与sails公共库:

git clone --recursive https://github.com/sails/saf.git

2]:执行编辑脚本:

./build.sh

3]:编译测试样例:

cd example

./build_test.sh

4]:运行测试,比如运行echo_sync:

./src/server

./example/echo_sync/client

5]:增加子模块,配置conf/sails.json:在modules里增加一行,name是子模块名,path是子模块动态库的路径。

性能,测试:

笔记本:T6400 @ 2.00GHz,cpu num:1,cpu cores:2 服务端和客户端都运行在这台电脑上:

C/C++开发工具8cc、rt0、C4、saf application framework介绍

2w tps,因为客户端和服务器在同一台电脑上,所以测试结果会比实际更低。

统计:

内置http服务器的默认绑定在端口8001上,所以可以通过输入localhost:8001/stat来查看统计信息:

C/C++开发工具8cc、rt0、C4、saf application framework介绍

下载地址:https://github.com/sails/saf

注明

以上就是C/C++开发工具8cc、rt0、C4、saf application framework的介绍内容,这些C/C++开发工具都能使用在Linux操作系统中。

栏目相关文章