出于兴趣,我们知道制作卫星有很多编程。他们写的是哪种语言?
答案 0 :(得分:12)
NASA卫星任务我参与了所有用于机载软件的汇编语言。美国宇航局强烈倾向于使用带有传统的飞行软件 - 重复使用组件(硬件和软件)以及之前任务中成功的历史记录。因此,而不是在最新,最强大的处理器上使用编译代码, 我们经常最终使用手工编码的程序集来处理wimpy但经过验证的处理器。例如, THEMIS项目建于2003年,于2007年推出,采用英特尔8085处理器,手动编码的装配模块具有以前任务的传统,如WIND,CLUSTER和STEREO。
答案 1 :(得分:3)
由于它们具有连接到其他I / O外设的自定义架构,因此应使用C / C ++或直接在ASM中进行编程,以获得更好的性能和优化。
它们是完全定制的,所以我认为还没有其他方法来解决这个问题,还要考虑它们必须使用非常低的能量(并且必须通过太阳充电),因此它们往往没有那么强大的硬件和必须真正优化(这就是为什么ASM的方式)。你不应该浪费任何单个CPU周期!
最后连接到卫星的设备实际上并不常见,所以我认为很难使用任何类型的标准API进行接口(如RS232等),我认为它们在每种情况下都不同。
我不会惊讶地发现许多像 Z80s 这样的旧芯片在卫星上做肮脏的工作只是因为它们足够强大,可以完成简单的任务,尽管它们的8位总线!
答案 2 :(得分:2)
答案 3 :(得分:2)
除了已经提到的可能性之外,至少one spacecraft由Lisp编写的软件控制其部分航班。
答案 4 :(得分:1)
我可以告诉你Mars Rover had at least some C++ code(PDF链接);他们使用了Rogue Wave的Tools.h++ library。
答案 5 :(得分:1)
美国国家航空航天局和洛克希德中心使用的大多数操作语言围绕统计和微积分。因此意味着MATLAB,haskell,Erlang和scala。 MATLAB和Erlang是请求配置的重要人物。
虽然硬件结束将以Assembly,C和Verilog为中心。
答案 6 :(得分:1)
NASA使用多种语言,并根据其用途和使用地点而有所不同。为某些计算和一些脚本编写的程序主要使用python编写。地面仪器和地面控制程序使用C,C ++,Ada等编写。为板载仪器和硬件编写的关键程序大多采用汇编语言,因为它可以最大程度地控制硬件,而且一些旧语言也是如此。在卫星上使用的许多硬件都是旧技术(这并不意味着它们已经过时,因为某些功能在没有它们的情况下是不可能的)而其他语言如MatLab,Visual Basic也用于科学计算。
答案 7 :(得分:0)
与任何其他软件一样,在卫星执行某些功能的语言将是最合适的语言,因为有效的各种业务和IT驱动程序。
如果你环顾四周,你会发现航空航天中使用的不同语言的例子。鉴于您的问题,您可能希望查看Ada,这通常被称为在“实时系统”中使用,这是一篇新闻文章,因此效果为here,有些非防御用户列在here。
答案 8 :(得分:-1)
您不能仅将一个程序用于所有系统,大多数情况下,它们使用Matlab和P