항공기 시스템에서 사용되는 어셈블리 언어


9

오늘 강사는 항공기 시스템이 어셈블리 언어로 프로그래밍 된 이유는 프로그램 작성 오류가 적기 때문이라고 언급했습니다. 이 진술이 사실입니까? 그가 우리의 의견에 대해 물었을 때 나는 어셈블리가 더 빠른 프로그램을 만들 수 있다고 말했기 때문에 실시간 지향 항공기 시스템 프로그램에 좋은 언어라고 말했다. 나는 구글을 검색하지만 강사의 진술을 명확히하는 기사를 찾지 못하는 것 같습니다.


24
강사를 잘못 이해했거나 강사가 바보입니다.
Paul R

3
실시간 중요 장비 제어 소프트웨어를 어셈블리로 작성하고 싶지 않습니다 . 실시간 소프트웨어 개발과 중요한 소프트웨어 개발 모두에 사용할 수있는 더 나은 언어가 있습니다.
CVn

5
강사의 나이가 궁금합니다. 어쨌든, 그는 자바와 같은 많은 현대 언어가 항공기 관련 임무에 대한 제한이 없다는 점을 지적하려고 시도했을 것입니다 (자바 실패). 중요한 응용 프로그램.
ZJR

1
@ZJR : 실제로 독일 UAV 제조업체 인 AFAIK는 비행 제어 시스템에 Java를 사용합니다. 다른 라이센스를 구입했을까요?
Jörg W Mittag

1
@ JörgWMittag : UAV는 다른 방법으로 사람들을 죽일 수 있지만 'U'는 비행 통제의 실패를 의미하며 이는 인간의 생명을 즉시 위태롭게하지 않음을 의미합니다. Java 라이센스에 따르면 미션 크리티컬 시스템 에는 적합 하지 않지만 다른 사람이 선택하는 것을 방해하지는 않습니다.
DaveE

답변:


29

강사의 진술이 틀린 것 같습니다. 공동 스트라이크 파이터 의 제어 코드는 C ++로 작성되었습니다. Boeing의 777은 99 % + ADA를 사용 합니다. JPL은 주로 C 를 사용 하여 우주선을 운전합니다.

나는 더 많은 예가 있다고 확신하지만 많은 사람들이 독점적이거나 분류 된 것으로 생각합니다.

다음은 항공 전자 소프트웨어를보다 일반적인 수준에서 테스트 하는 주제 에 대해 자세히 설명하는 문서입니다 .


일부 NASA 프로젝트는 과거에 Lisp 방언을 사용했습니다. 독일 UAV 제조업체는 Java를 사용하기도합니다.
Jörg W Mittag

B2 폭격기는 최근 C로 다시 작성되었습니다. 출처 : tech.slashdot.org/story/08/07/14/1934228/…
user16764

암흑 시대 (1980 년대 초)로, F-16A / B는 매장 관리 세트의 어셈블리 언어와 Firecontrol Computer의 JOVIAL J3B를 사용했습니다. F-16C / D는 처음 몇 블록의 모든 작업에 JOVIAL J73을 사용했으며 나중에 Ada로 전환했다고 생각합니다. 나는 그들이 오늘날 무엇을 사용하는지 모른다.
John R. Strohm

5

다양한 항공기에 연결되는 구성 요소 인 OBOGS에서 작업하고 있습니다. 우리는 일반적으로 비행하는 장치에 C를 사용하지만 기록 파일을 살펴보면 몇 가지 어셈블리 프로젝트가 있습니다.

솔직히 패션입니다. 언어가 오르락 내리락 사람들이 하나 또는 다른 것을 사용하는 이유는 모든 곳에서 다양하며 대부분 주관적입니다. 어느 시점에서 누군가가 다른 언어에서보다 오류가 적기 때문에 어딘가에서 어떤 프로젝트에 대해 어셈블리가 올바른 선택이라고 주장하는 것이 완전히 그럴듯하다는 것을 알았습니다. 그리고 그는 아마 옳았지만, 그 사람은 C로 코딩하는 방법을 알지 못했기 때문입니다. 지금까지 직업에 가장 적합한 언어는 당신이 아는 언어입니다. (개인 성장에 가장 적합한 언어는 그렇지 않은 언어입니다.)

어셈블리가 하드웨어에 더 가깝고 덜 추상화되어 있으며 더 직접적이며 다른 언어로 동일한 것에 대한 지시가 더 많다고 객관적으로 말할 수 있습니다. 오버 헤드를 줄이고 빠르게 담배를 피우기 위해 어셈블리를 작성할 수있는 가능성이 있다고 말할 수도 있습니다. 당신이하고있는 일을 알고 있다면. 그러나 오류 발생 가능성, 개발 속도, 가독성 및 암 치료 능력은? 이 모든 것은 프로그래머의 능력과 지난 20 년간 일한 내용에 달려 있습니다. 어떤 언어의 프로젝트에 X 개의 버그가 있는지 측정하는 것은 사회 학적 요소에 영향을 받기 때문에 가치없는 지표가됩니다. 아니, 그것은 너무 많은 패션입니다.

코드가 무엇을 요약하는지 아는 것이 좋으므로 어셈블리를 배우는 것이 중요하다고 말할 것입니다. 조금만 그러나 나는 그것에 항공 전자 공학을 쓰지 않을 것입니다.


1
결국, 어셈블리를 작성한다는 것은 현재 수행중인 작업을 알고 있으면 전체적으로 더 적은 기계 코드를 의미하며 결과로 생성되는 기계 코드의 모양을 정확히 알고 있습니다. 컴파일러를 신뢰할 필요는 없습니다.
Hawken
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.