C/C++ python shell perl 编程语言差别介绍

本文对比了C、C++、Python和Perl等编程语言的特点,涵盖了语法、数据类型、函数使用、错误处理等方面,强调了每种语言的独特优势及其适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

POSIX(Portable Operating System Interface)C确实可以被视为在标准C(即ANSI C,美国国家标准协会制定的C语言标准)基础上对Unix C的扩展。

具体来说,POSIX标准定义了一组操作系统接口,这些接口提供了对Unix系统编程的一致性。POSIX标准不仅包括了C语言标准库的一部分,还扩展了许多Unix特有的功能,比如进程控制、文件系统操作、信号处理等。因此,POSIX C不仅包含了标准C的所有特性,还额外提供了Unix系统编程所需的接口和库函数。

所以,从这个角度来看,将POSIX C视为在标准C基础上对Unix C的扩展是合理的。这种扩展使得开发者能够更方便地在Unix系统上进行编程,同时也提高了代码的可移植性和兼容性。

从开始的BSP使用C语言,到后期人工智能使用Python,以及常用的shell工具,到现在使用了点perl,稍微总结一下,这几种语言的特点。如果,以后有一种自己不太用的到的,到某一次突然需要使用的时候,捡起来快一些。

其实所有的程序需要完成的功能模块都比较相似:

比如:
程序解析(用’;'分号还是语句的缩进关系);
数据类型(整型、浮点型、字符/字符串及class等,数据声明使用及作用范围);
文件处理(文件的打开,读写,关闭等);
逻辑规则(if for switch等);
函数(定义,调用,传参等);
错误处理;
还有stdin stdout stderr的定义使用;

学习一种新的编程语言,就是学习这个编程语言对上述功能的实现方法。定义、语句、规则的差异。但是思想都是统一的,相差不大。所以,应该是学通一种编程语言,其他的编程语言就都相似的。

C:
特点:

  1. 面向过程:本人感觉,并没有完全的面向过程,面向对象之分,面向过程的语言也能写出面向对象的代码。
  2. 指针:
    C语言的指针,可以指向各种数据类型,包括结构体,函数及指针等。
    想起其他的后补;
  3. 函数参数及返回值需要考虑数据类型:
    C语言是本人用的比较踏实的语言,所有的数据类型声明,使用,占用的内存大小,函数之间的参数类型传递,都需要考虑,一把双刃剑,需要程序员考虑的多,但是从而使程序更加优化。
  4. define,typedef强大的宏定义,提高程序可观性;
  5. C语言使用’;'(分号)作为语句结束符。
  6. if for语句如果不加括号,默认下一句为条件句。加括号,则将括号的整体内容作为条件语句。(提倡加括号,增加易读性且避免添加其他语句忘加括号,程序出错问题。)
  7. 头文件.h用于声明一些外部变量及函数等;
  8. 静态库,动态库的编译调用;
  9. 需要通过编译、链接生成可执行文件。

C++:
特点:面向对象的编程思维

  1. C语言基础上的封装,兼容C的使用方法及接口,包括指针,结构体以及头文件的使用方式;
  2. 增加了class namespace的封装,同时增加了关于类的继承等功能;
  3. 增加了模板,引用/别名,深浅拷贝等一些附加功能;
  4. 支持关于矩阵,张量的运算库,如eigen ceres等;
  5. 增加了cin cout 附加功能。
  6. 使用与C语言相似
  7. 但是由于模板,别名等的引入,使C++的执行效率相对C语言要低。

Python:

  1. 有class功能,用法与C++ java类似,有public private成员变量作用域指定;
  2. python文件可直接执行(当然是在文件有x权限的前提下);
  3. python根据程序的缩进来解析语法规则;(不用分号’;‘),全文的缩进方式必须一致。if、for虽然不用括号,用缩进识别子语句,但是条件语句后要加冒号’:'。
  4. python通过import其他python文件(带__init__.py文件夹)来实现外部成员的引用;
  5. python的数据类型不需要指定,自动识别,如a=1,则a被自动解析为int。从而python传参也不需要指定数据类型,后台自动解析类型。
  6. python的主要数据类型:数字(Number);字符串(String);列表(List);字典(Dictionary);元组(Tuple);其中列表相当于一个大容器,可以将不同数据类型存放到一个list中。字典是(key:value)格式。元组相当于不可改变的数组。
  7. 简单易学,且集成了numpy,tensorflow,keras等强大的矩阵张量运算模块。简单的同时,强大无比。
  8. …(后期想起来再补充)

perl:(使用较少可替代,有废弃风险)

  1. 通过分号(‘;’)来分别程序语句;
  2. 数据类型主要分为标量($)和数组(@)两个类型。
  3. 传递函数不需要指定数据类型,通过@_数组传递参数。$_是指当前参数。
  4. if for 条件语句加圆括号(),执行语句使用{};
  5. 通过my our等指定数据作用域;
  6. 通过’\'来赋值引用。如$a = \@b;即将数组b的引用赋值为标量a;
  7. 同python一样,具有执行权限文件可直接执行;
  8. (…后续补充吧)

shell
被用来解决一些重复性很高多行的shell命令的繁复问题。就是将shell命令组装成脚本,完成指定工作任务。

  1. 可直接运行。不通过编译,可以实现一些自动化部署的任务自动执行
  2. 不通过分号; 判断语句结束,if [];then句式需要分号
  3. 参数赋值时不加,引用时需要加,引用时需要加,引用时需要加
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值