2010-02-22 118 views
6

出于兴趣,我们知道有很多编程涉及制作卫星。他们写了哪些语言?用于编写卫星任务程序的语言?

+3

用于控制丰田加速器和制动系统的语言如何? – DOK 2010-02-22 19:11:16

+2

@DOK评论我在lwn.net的相关讨论主题中写道:http://lwn.net/Articles/374618/ – 2010-02-22 19:14:48

+0

谢谢大家,那真的很有趣:) – trinity 2010-02-23 17:45:42

回答

0

与其他任何软件一样,用于在卫星中执行某些功能的语言将是适用于各种业务和IT驱动程序的最合适的语言。

如果你环顾四周,你会发现航空航天中使用的不同语言的例子。考虑到你的问题,你可能想看看Ada,这通常被称为在'实时系统'中使用,这是一篇新闻文章,效果是here,一些非防御用户列出了here

3

因为他们有一个自定义的架构连接到其他I/O外设,他们应该在C/C++或直接在ASM获得更好的性能和优化编程..

他们完全自定义的,所以我不认为还有其他方法可以解决这个问题,并认为它们必须使用非常低的能量(并且必须由太阳来充电),所以它们往往没有如此强大的硬件,并且必须经过优化(这就是ASM的原因)。你不应该浪费任何一个CPU周期!

最后,连接到卫星的设备种类真的很少见,所以我认为使用任何标准的API接口很难(如RS232等),我认为它们对于每种情况都是不同的。

我不会惊讶自己找到很多旧芯片,如Z80s在卫星上做肮脏的工作,只是因为他们足够强大,可以完成简单的任务,尽管他们的8位总线!

2

提到C,C++和Ada here(是的,作者不能将“Ada”大写)。 C代码可以手写或从Scade生成。

2

除了已经提到的可能性之外,至少one spacecraft由Lisp编写的用于其部分航班的软件控制。

9

美国国家航空航天局的卫星任务我已经参与了所有使用的板载软件的汇编语言。美国国家航空航天局强烈希望使用飞行软件传承 - 重复使用组件(包括硬件和软件),并在以前的任务中证明了成功的历史。因此,我们通常最终在wimpy上使用手工编译的程序集,但是经过实践验证的处理器,而不是在最新,功能最强大的处理器上使用编译代码。例如, THEMIS项目建于2003年,并于2007年推出,运行在Intel 8085处理器上,具有手动编码的汇编模块,具有以前任务(如WIND,CLUSTER和STEREO)的传统。

0

美国国家航空航天局和洛克希德中心使用的大多数操作语言都围绕着统计和微积分。因此意味着MATLAB,haskell,Erlang和scala。 MATLAB和Erlang是需要进行配置的重要组件。

虽然事情的硬件结束将围绕Assembly,C和Verilog。

1

美国国家航空航天局使用多种语言,它根据其用途和使用位置而变化。为某些计算和某些脚本编写的程序主要是使用python编写的。用于地面仪器和地面控制的程序使用C,C++,Ada等编写。为船上仪器和硬件编写的关键程序主要采用汇编语言,因为它可以最好地控制硬件,一些旧的语言也可以使用卫星上的许多硬件都是旧技术(这并不意味着它们过时了,因为一些功能在没有它们的情况下是不可能的),MatLab等其他语言也可用于科学计算。

相关问题