CMS-2

CMS-2
CMS-2
CMS-2Y Programmers Reference Manual for the AN UYK-7 and AN UYK-43 Oct86.jpg
CMS-2Y 프로그래머 참조 매뉴얼
패러다임명령적
설계자랜드, 인터메트릭스
개발자컴퓨터 과학 주식회사
첫 등장1968
영향을 받은
CS-1, Fortran, JOFLITYPL/I[1]
CMS-2 코드 예제

CMS-2미국 해군이 사용하는 임베디드 시스템 프로그래밍 언어다.[2]그것은 코드 이식성과 재사용성을 향상시키기 위한 표준화된 고급 컴퓨터 프로그래밍 언어를 개발하려는 초기 시도였다.CMS-2는 주로 미 해군의 전술 데이터 시스템(NTDS)을 위해 개발되었다.[1]

CMS-2는 1970년대 초 랜드 사에 의해 개발되었으며 "컴파일러 모니터 시스템"을 의미한다.문헌에는 "CMS-2"라는 명칭이 표적 시스템의 유형을 지정하는 문자로 이어진다.예를 들어 CMS-2M은 AN/AYK-14와 같은 네이비 16비트 프로세서를 대상으로 한다.[2]

역사

CMS-2는 캘리포니아 주 샌디에이고의 FCCPAC(Fleet Computer Programming Center - Pacific)용으로 개발되었다.1968년 컴퓨터과학공단인터메트릭스의 설계 지원을 받아 시행했다.언어는 계속 발전되어, 결국 AN/UYK-7AN/UYK-43과 UYK-20과 UYK-44 컴퓨터를 포함한 다수의 컴퓨터를 지원하게 되었다.[4]

언어 기능

CMS-2는 프로그램 모듈화를 장려하기 위해 설계되었으며, 전체 시스템의 일부를 독립적으로 컴파일할 수 있다.그 언어는 진술 지향적이다.소스는 자유형이며 프로그래밍 편의를 위해 배치될 수 있다.데이터 유형에는 고정 점, 부동 소수점, 부울, 문자 및 상태가 포함된다.문자와 비트 문자열을 직접 참조하고 조작할 수 있다.심볼 기계 코드는 직접 코드로 알려져 있다.[1]

프로그램 구조

CMS-2 컴파일 시간 시스템 예제

CMS-2 프로그램은 문장으로 구성된다.문장은 구분 기호로 구분되어 있다.기호 범주에는 연산자, 식별자 및 상수가 포함된다.연산자는 컴파일러가 프로그램의 특정 운영 또는 정의를 위해 할당한 언어의 기본 요소다.식별자는 프로그래머가 데이터 단위, 프로그램 요소 및 문 라벨에 할당한 고유한 이름이다.상수는 숫자, 홀러리스 문자열, 상태 값 또는 부울일 수 있는 알려진 값이다.

CMS-2 문장은 자유형이며 달러 표시에 의해 종료된다.문 라벨은 참조 목적으로 문 앞부분에 부착할 수 있다.

CMS-2 소스 프로그램은 두 가지 기본적인 유형의 문장으로 구성된다.선언문은 컴파일러에게 기본 제어 정보를 제공하고 특정 프로그램과 관련된 데이터의 구조를 정의한다.동적 문으로 인해 컴파일러는 실행 가능한 컴퓨터 명령(개체 코드)을 생성하게 된다.

프로그램에 대한 데이터를 정의하는 선언문은 데이터 설계라는 단위로 그룹화된다.데이터 설계는 임시 및 영구 데이터 저장 영역, 입력 영역, 출력 영역 및 특수 데이터 단위에 대한 정확한 정의로 구성된다.데이터에 작용하거나 계산을 수행하는 동적 문장은 절차로 분류된다.데이터 설계와 절차는 CMS-2 프로그램의 시스템 요소를 형성하기 위해 추가로 그룹화된다.컴파일러는 시스템 요소를 컴파일 시간 시스템으로 결합한다.컴파일 시간 시스템은 단독으로 서 있거나 더 큰 프로그램의 일부가 될 수 있다.[1]

데이터 선언문

데이터 선언문은 컴파일러에게 데이터 요소 정의에 대한 정보를 제공한다.그들은 컴파일 시간 시스템에서 데이터 요소의 형식, 구조 및 순서를 정의한다.3가지 주요 데이터 종류는 스위치, 변수, Aggregate이다.[1]

스위치

스위치는 컴파일 시간 시스템의 특정 위치로 프로그램 제어를 이전하는 것을 제공한다.그것들은 프로그램 전송과 분기를 용이하게 하기 위한 일련의 식별자 또는 전환점을 포함하고 있다.스위치는 문 라벨 또는 절차 이름의 프로그램 주소를 나타낸다.

변수

변수는 하나의 데이터 조각이다.그것은 하나의 비트, 여러 비트 또는 단어로 구성될 수 있다.값은 변수 정의에서 할당할 수 있다.변수는 상수 또는 변경 값을 가질 수 있다.데이터 유형에는 정수, 고정점, 부동소수점, 홀러리스 문자 문자열, 상태 또는 불레안이 포함된다.

골재

테이블에는 동일한 구조화된 정보의 정렬된 집합이 있다.표에 있는 데이터의 공통 단위는 항목이다.품목은 테이블의 가장 작은 부분인 분야로 세분될 수 있다.필드에 포함된 허용 가능한 데이터 유형에는 정수, 고정 점, 부동 소수점, 홀러리스 문자 문자열, 상태 또는 부울이 포함된다.배열은 테이블 개념의 확장이다.배열의 기본 구조 단위는 항목이다.배열 항목은 프로그래머가 정의한 필드를 포함한다.

동적 문

동적 문은 처리 작업을 지정하고 컴파일러에 의해 실행 가능한 코드를 생성한다.동적 문장은 연산자와 피연산자 및 추가 연산자 목록으로 구성된다.피연산자는 단일 이름, 상수, 데이터 요소 참조 또는 식일 수 있다.[1]

명세서 연산자

주요 CMS-2 연산자는 아래에 요약되어 있다.

연산자 함수
세트 계산 수행 또는 값 할당
바꾸다 두 데이터 단위의 내용 교환
에 가다 프로그램 흐름 변경 또는 문 스위치 호출
IF 조건부 실행을 위한 비교 또는 부울 식을 표현함
바르다 프로그램 루프 설정
찾기 테이블에서 데이터 검색

특수 연산자

특수 연산자는 데이터 구조와 그것들에 대한 운용에 대한 참조를 용이하게 한다.[1]

연산자 함수
비트 데이터 요소의 비트 문자열 참조
CHAR 문자열을 참조한다.
코라드 코어 주소 참조
ABS 식의 절대값 획득
COMP 부울 식 보완

프로그램 구조 선언

프로그램의 처리 작업을 기술하는 동적 문장은 절차라고 하는 문장의 블록으로 분류된다.[1]

시작 구분 기호 끝 구분 기호 목적
시스템 엔드 시스템 컴파일 시간 시스템 구분
SYS-DD 엔드-시스-DD 컴파일된 시스템에서 시스템 데이터 설계 구분
SYS-PROC 엔드-시스-프로치 컴파일 시간 시스템에서 시스템 절차 구분
LOC-DD 엔드-로크-DD 시스템 절차에서 로컬 데이터 설계 구분
절차 엔드-프로치 시스템 절차에서 절차 구분
EXEC-PROC 엔드-프로치 시스템 절차에서 작업 상태 절차 구분(XCMS-2만 해당, 실행 상태 절차에서만 호출됨)
함수 엔드 기능 시스템 절차에서 함수 구분
SYS-PROC-REN 엔드-시스-프로치 컴파일 시간 시스템에서 재입력 시스템 절차 구분(XCMS-2에만 해당)
AUTO-DD 엔드-AUTO-DD 실행을 위해 재입원 시스템 절차가 시작될 때마다 할당되어야 하는 재입원 시스템 절차에서 동적 데이터 영역 구분(XCMS-2에만 해당)
머리 끝머리 컴파일 시간 시스템에서 헤더 패키지 구분

하이 레벨 입력/출력 문

입력/출력 문구는 모니터 시스템 하에서 실시간이 아닌 환경에서 실행하면서 하드웨어 장치와의 통신을 제공한다.[1]

연산자 함수
파일 입력 및 출력에 대한 환경 및 기타 정보 정의
오픈 I/O 루틴 초기화
가까운. 파일 및 쓰기 및 파일 끝 표시 비활성화
입력 외부 장치에서 파일 버퍼 영역으로 입력 작업 지시
출력 파일 버퍼 영역에서 외부 장치로 출력 작업 지시
포맷 외부 데이터 블록과 내부 데이터 정의 간에 원하는 변환 정의
인코드 지정된 형식에 따라 변환하여 데이터 요소를 공통 영역으로 변환
디코딩 형식 선언에 지정된 대로 공통 영역의 포장을 풀고 데이터 단위로 전송
엔드파일 적절한 기록 매체에 파일 종료 표시
POS 자기 테이프 파일을 배치하는 특수 작업자
길이 입력/출력 기록 길이를 얻기 위한 특수 작업자

컴파일러 모니터 시스템 2(CMS-2)

컴파일러 모니터 시스템 2(CMS-2)는 UNIVAC CP-642B(AN/USQ-20)에서 실행되는 시스템이었다.시스템 소프트웨어에는 모니터, 컴파일러, 사서, CP-642 로더, 테이프 유틸리티 및 플로우 차트가 포함되었다.[1]

MS-2 모니터

CP-642 시스템에서 실행되는 CMS-2 구성 요소 및 사용자 작업의 실행을 제어하는 배치 처리 운영 체제.입출력, 소프트웨어 라이브러리 설비 및 디버깅 툴을 제공한다.직무회계도 제공된다.

CMS-2 컴파일러

CP-642, L-304, AN/UYK-7, 1830A 및 1218/1219 컴퓨터의 객체 코드를 생성하는 CS-1 및 CMS-2 언어용 컴파일러.1970년대에 CMS-2 컴파일러의 버전은 코드 컴파일에 사용된 컴퓨터에 따라 달랐다.일부 기능에서 작동하려면 일부 소스 코드를 다시 작성해야 했다.그리고 다른 버전의 CMS-2는 디버깅 도구에 문제가 있었다.

XCMS-2 컴파일러

AN/UYK-7 컴퓨터의 언어 기능을 추가하는 확장 CMS-2 컴파일러.AN/UYK-7 객체 코드만 생성한다.

CMS-2 라이브러리 관리자

소스 및 개체 코드에 대한 저장 및 액세스를 제공하는 파일 관리 시스템.

CP-642 객체 코드 로더

절대 또는 다시 연결 가능한 개체 코드를 로드하기 위한 두 개의 개체 코드 로더.

테이프 유틸리티

자기 테이프에서 데이터를 관리하기 위한 유틸리티 세트.

CMS-2 플로우차르

플로우차터 소프트웨어는 CMS-2 소스 코드의 플로우차터를 처리하고 고속 프린터로 플로우차트를 출력한다.

참고 항목

참조

  1. ^ a b c d e f g h i j U.S. Navy (1978), Digital Computer Basics Rate Training Manual, NAVEDTRA 10088-B, U.S. Navy
  2. ^ a b Neal Ziring (1998-10-19). "CMS-2". Ziring MicroWeb. Archived from the original on 1998-10-19. Retrieved 2014-07-08.
  3. ^ Mark Wilson - UYK-20 및 UYK-44와 함께 이지스 ORT에 대한 개인적인 경험
  4. ^ Fleet Combat Direction Systems Support Activity (1986), CMS-2Y Programmers Reference Manual for the AN/UYK-7 and AN/UYK-43 Computers, U.S. Navy

외부 링크