大家好,今天小编关注到一个比较有意思的话题,就是关于取代c语言的编程语言有哪些的问题,于是小编就整理了2个相关介绍取代c语言的编程语言有哪些的解答,让我们一起看看吧。
哪几种编程语言可以用到单片机编程里?
当前总的来说C和汇编最普及,一些不太常用,但有不少铁粉的有如:basic, pascal, elua, epython, JavaScript等高级语言。
近年来,随着单片机计算能力增强,内存和闪存增大,外设增多,带OS的解释型语言有大举进军单片机之势,一些分布式传感器、控制器等应用,很多既需要联网使用,又要有很好的可扩展性和在线更新/升级的能力,用传统的裸奔方式开发,没有一定用量的话成本就高去了,现在不是讲“个性化”嘛,这样就得用小批量、差异化来做产品。
解释语言如elua,ePython等有大量的pc经验程序员可以稍加学习就可以做,即使产品不够完美,也可以先少量出产品,然后不断在线迭代,逐步满足用户不同需求,这是传统做法达不到的。当然,就当前而言,大量的产品还得靠C和a***。
现在单片机的型号比较多,绝大部分编写单片机程序都用的比较多的语言有两种,一种是苦涩难懂而执行效率高的汇编语言;另一种是普遍受广大嵌入式工作者喜爱的C语言。以上两种语言是目前编写单片机程序用的最多的。
这两种语言各有优缺点,汇编语言好处是执行的效率高,它直***问的是单片机内部的寄存器,但其可读性和维护性不好;而C语言好处是容易维护、可读性好并且接近人类语言,但执行效率只是汇编的80%。在做单片机大型控制系统时所用C语言较多;而在控制时间精度和实时性要求较强的场和应用汇编语言较多。现在有的编程软件可以支持c语言和汇编语言的混合编程,比如KeiI软件就是支持混合编程的。
当然还有一些单片机也有一些自己的编程语言,它们用的是精简指令,类似汇编语言的编程模式,比如OTP(一次性编程单片机)、PIC单片机等;还有一种是可编程的逻辑芯片(CPLD)运用的是硬件描述语言(VHDL)类似C语言风格。总体来说汇编语言和C语言是单片机两大主流编程语言!
以上是我对这个问题的回答,欢迎大家参与讨论并观注电子及工控技术!
原因是,C语言语法简洁,却能实现无数功能,然后就是执行效率高
相对于汇编语言,C语言没有他的晦涩难懂,效率还差不了多少。
除了单片机,目前有些新设备(树莓派,arduino等)也可以作为一些电子设计,DIY项目的处理器。这些用Python的比较多。
单片机程序的开发可以使用的两种语言,分别是C语言和汇编语言。这里要指出的一件事是,这不是嵌入式单片机开发工程师唯一可以使用的两种语言,在许多情况下,使用其他语言可能是更好的选择。
话虽这么说,C语言和汇编语言不仅有助于学习单片机编程,而且有助于实际进行高效的单片机编程。它们支持的单片机也很广泛,无论你选择哪种单片机,它几乎肯定都有可用的汇编程序(用于处理汇编语言源代码)和C编译器(用于处理C源代码)。对于其他语言来说,可能是不支持的。但是,如果你愿意,考虑学习和使用其他语言并不是坏事。
关于汇编语言,即使不打算在嵌入式编程中使用它,但建议单片机[_a***_]至少要熟悉这些概念,并使用单片机的指令集。这样做的原因是,即使你最终没有编写任何汇编语言,你仍会发现自己需要使用汇编语言为单片机编写启动文件。
目前大部分单片机都可***用C语言和汇编语言,部分高级单片机如DSP,可***用C++进行面向对象的编程。
1、汇编语言。***用汇编语言进行编程,优点是会对单片机的架构理解的比较透彻,软件运行速度较快,可控性比较高。缺点是不同单片机的汇编指令不同,可移植性较差。所以目前大部分编程都***用C语言。但对于时间可控性较高的,则还需要汇编编程,以及实时系统移植也需要汇编语言。
2、C语言。C语言是目前单片机编程最常用的语言。C语言具有易编程,结构化,可移植性的优点,因此被广泛利用。
3、C++。由于DSP具有处理速度快,可处理较为复杂的系统,因此某些开发坏境支持C++面向对象的编程,如Code Composer Studio。
java、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
簡單的說就是單片机的內存及cpu速度有限。像Java 這類需要JVM吃內存怪獸的直接淘汰,因為別說在上面開發JAVA,連jvm能否po上單片机都是問題。Python 雖說可以編譯成机械碼,但遠不如c來的簡潔扼要,所以c是最佳選擇。
从事编程十几年,J***A、C、C++、Python这四种编程语言都玩过,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是不合适,单片机使用的场景属于功能简单,成本相对较低,现在也有高配版的单片机,本来单片机是不带系统的,非要硬扯到带系统的,从成本上考量就不是那回事了,成本主要包括两个方面有硬件成本,还有研发难度的成本这都是需要考虑的事情。
单片机开发语言C语言和汇编,别的语言还真不好上手,编程语言能力强大与否关键无外乎是不是能够控制底层的硬件,往往是一些门外汉喜欢编排一些故事,搞成什么编程语言的鄙视链条,真正的程序员底层的编程语言会羡慕上层编程语言的灵活性,上层的编程语言羡慕底层的编程人员能够控制硬件觉得是一件很神奇的事情,曾经面试过一个做了很多年j***a的工程师,居然想着拿出两年的时间来学习C语言,最后真还是降低工资标准进来了公司。
单片机编程主要是操作硬件的寄存器多一点,在编程语言方面使用的指针多一些,基本上while搭配中断把编程工作就差不多搞定了,如果硬要上j***a,python主要运行环境受不了,在运行j***a之前首先要把虚拟机给移植上,就单片机那点内存压根不是个,所以不同的编程环境不同的搭配,没有必要强求,无论是C/C++编程还是高级语言j***a,python在使用过程中编程套路都接近。
如果真要想在单片机上运行虚拟机还不如直接找个有操作系统的嵌入式设备,单片机完成的就是简单能够容易实现的功能,太多功能模块化的功能就不适合在这上面,解释性的语言执行需要一个运行环境不像单片机那么单纯,直接把全套的环境都运行在一个程序里面,单片机编程的时候有时候发现明明只有几行代码编译出来却有几百k,主要所有的驱动以及底层的实现都统统打包在一个可执行文件里面,嵌入式的运行环境相对来讲就比较复杂了,首先要把操作系统给安装到位,还有各种驱动提前准备好。
越是高级语言的编程越是框架性强,可移植性强,单片机编程适合简单功能的产品,比如常见的MP3,扫地机,以及玩具功能来回就是几个功能,没有特别复杂的功能,如果后续功能非常多而且界面操作非常繁琐就可以考虑使用嵌入式编程或者更加高级一点的编程语言了,永远都是适当的场景适用适当的编程语言,无所谓对错。
希望能帮到你。
单片机能否提供程序所需的运行环境决定了某种语言能否用于单片机程序的开发。单片机的总线宽度决定了单片机存储空间的大小。其中,拥有32位总线的单片机的存储空间可达4GB,装个Linux差不多可以跑各种程序了。这里我们只讨论总线宽度在16位以下的单片机。
单片机上没有I/O设备,只有I/O接口,程序要以机器码的形式写入随机存储器(就是PC的内存)。主流单片机的总线宽度一般是16位,比如,51单片机。存储器空间最大能做到64K。一些单片机的存储空间只有256个字节甚至更小。这么小的存储空间容不下操作系统,所以能在单片机上跑的程序都得是原生的机器码。C/C++都能直接编译成原生的机器码程序,因此,广泛用于单片机程序开发。J***a需要虚拟机,基本上不能在单片上运行(JVM有几百M)。Python可以编译成C语言的原生程序,有可能在单片机上运行。但是,Python的程序里一般都带着一庞大的标准库,简单移植到单片机上不太可行,需要做一些定制化改造才有可能。这类语言不能移植到单片机上的原因主要是他们为了能在不同的操作系统上移植,使用了独立的运行环境,而这个环境的体量太大装不到单片机上。
最后科普一下高级语言的概念。机器码被称为第一代语言,汇编被称为第二代语言。其他语言都是高级语言。C/C++是第三代语言。J***a和Python被称为3.5代或者是第四代语言。主要是因为他们废除了内存操作指令。还有更高级的语言,SQL因为没有了变量定义(准备内存空间)被称为第四代或第五代语言。
首先,C语言是比汇编高一个等级的语言,编程风格是面向过程编程,数据操作比较简单,且易实现,编写起来比汇编容易;C++是继C语言上起来的语言,有自己的库和很多通用的模板类,编程风格是面向对象,对数据处理进行了严格的封装,处理起来不太方便;Python就比较高级了,有更为专业的库,使用时只需调用接口函数。
作为985院校的本硕毕业生以及BAT的J***a开发工程师来回答这个问题。
也许你早就好奇了,什么是高级语言,那对应的有没有低级语言?
简单粗暴的解释,人类直接使用的语言就算高级语言,比如题主提到的,都是程序员编程时候直接使用的,相对于低级语言来说,更具有逻辑性,更容易阅读和编写。高级语言可以认为是对低级语言的封装,因此实现同样的功能,使用高级语言编写的程序更加短小精悍。
而与低级语言相对,就不是给人看的,而是给机器看的语言。所有高级语言在真正执行的时候,都要编译为低级语言,毕竟真正的执行者是机器。这里我们可以将机器语言和汇编看为低级语言,它们通常使用的是机器识别的01代码已经一些符号。
单片机其实就是一个微型电脑,除了功能和性能上比我们家用电脑弱很多,其他内部重要构造一应俱全,用来做一些控制家用电器的工作足够了,比如洗衣机,微波炉什么的。
这些单片机通常都是用C/C++编写的。因为他们是编译型语言,是可以直接生成exe文件,然后直接放在单片机内部运行的。而像J***a,属于解释型语言,它编译后的class文件是要放在jvm中才能运行的,直接放进单片机,人家根本理解不了。
如果偏要J***a写单片机程序,就需要把它的解释器烧进单片机且与单片机对接才行。这样做第一占用单片机有限的空间***,第二也会影响执行速度。你总不希望你点击微波炉的加热按钮,三秒钟之后它才反应过来开始加热吧。
到此,以上就是小编对于取代c语言的编程语言有哪些的问题就介绍到这了,希望介绍关于取代c语言的编程语言有哪些的2点解答对大家有用。