UCSD 파스칼

**UCSD 파스칼**(UCSD Pascal)은 이식성이 뛰어나고 기계 독립성이 높은 운영체제인 **UCSD p-시스템**에서 실행되는 파스칼 프로그래밍 언어 시스템이다. UCSD 파스칼은 1977년에 처음 출시되었으며, 캘리포니아 대학교 샌디에이고(UCSD)에서 개발되었다.

## p-시스템
1977년, 캘리포니아 대학교 샌디에이고(UCSD) 정보 시스템 연구소는 당시 사용 가능한 모든 마이크로컴퓨터와 캠퍼스의 DEC 미니컴퓨터인 PDP-11에서 실행될 수 있는 공통 환경을 학생들에게 제공하기 위해 UCSD 파스칼을 개발했다. 이 운영체제는 UCSD p-시스템으로 알려지게 되었다.

IBM은 오리지널 IBM PC를 위해 UCSD p-시스템, CP/M-86, IBM PC DOS의 세 가지 운영체제를 제공했다. 벤더인 소프텍 마이크로시스템즈는 IBM PC 출시 당시 20개의 CPU용 가상 머신을 갖춘 p-시스템의 애플리케이션 이식성을 강조했다. 사용자들은 p-시스템을 실행하는 미래 컴퓨터에서 구매한 애플리케이션을 사용할 수 있을 것이라고 예측했으며, 광고에서는 이를 "범용 운영체제"라고 불렀다.

PC Magazine은 IBM PC의 UCSD p-시스템을 비난하며, 해당 언어로 작성된 Context MBA 리뷰에서 "좋은 코드를 생성하지 못한다"고 언급했다. p-시스템은 애플리케이션 부족과 다른 선택지보다 비싼 가격 때문에 IBM PC에서 잘 팔리지 않았다. 이전에 IBM은 IBM 디스플레이라이터에 UCSD p-시스템을 옵션으로 제공했다. 디스플레이라이터는 8086 기반의 전용 워드 프로세싱 기계였다. (디스플레이라이터의 기본 운영체제는 완전히 내부적으로 개발되었고 최종 사용자 프로그래밍을 위해 공개되지 않았다.)

표준 파스칼에 대한 주목할 만한 확장 기능으로는 별도 컴파일 가능한 단위와 스트링 유형이 있다. 일부 내장 함수는 문자열 처리(예: 특정 검색 패턴을 위한 배열 스캔)를 가속화하기 위해 제공되었고, 다른 언어 확장은 UCSD p-시스템이 자체 컴파일되고 자체 호스팅되도록 허용하기 위해 제공되었다.

UCSD 파스칼은 p-코드 머신 아키텍처를 기반으로 했다. 이 초기 가상 머신에 대한 기여는 p-코드를 컴파일러 중간 언어로서의 뿌리에서 벗어나 완전한 실행 환경으로 확장한 것이었다. UCSD 파스칼 p-머신은 16비트로 제한된 주소 지정(64KB 메모리만)을 가진 새로운 소형 마이크로컴퓨터에 최적화되었다. 제임스 고슬링은 UCSD 파스칼을 자바 가상 머신 설계에 대한 주요 영향(그리고 스몰토크 가상 머신과 함께)으로 언급한다.

UCSD p-시스템은 p-머신(또는 가상 머신, 많은 사용자들이 OS처럼 "파스칼-머신"이라고 부르기 시작했지만 UCSD 문서에서는 항상 "가상 머신"을 사용했다)이라고 불리는 가상 머신을 정의하여 기계 독립성을 달성했으며, 자체 명령어 집합인 p-코드(또는 가상 코드)를 가졌다. 니클라우스 비르트의 제자인 Urs Ammann은 원래 그의 박사 학위 논문에서 p-코드를 제시했으며, 여기서 UCSD 구현은 취리히 파스칼-P 구현에서 파생되었다. UCSD 구현은 취리히 구현을 "바이트 지향적"으로 변경했다. UCSD p-코드는 파스칼 프로그래밍 언어 실행에 최적화되었다. 각 하드웨어 플랫폼은 전체 p-시스템과 모든 도구를 실행하기 위해 p-코드 인터프리터 프로그램만 작성하면 되었다. 나중에 나온 버전에는 p-코드 기반으로 컴파일되는 추가 언어도 포함되었다. 예를 들어, 애플 컴퓨터는 애플 버전의 p-시스템에서 실행되는 p-코드를 생성하는 포트란 컴파일러(실리콘 밸리 소프트웨어, 서니베일 캘리포니아에서 작성)를 제공했다. 나중에는 텔레소프트(샌디에고에도 위치)가 p-코드를 사용하여 모토로라 68000, System/370, 파스칼 마이크로엔진을 포함한 여러 하드웨어 플랫폼에서 실행될 수 있는 초기 에이다 개발 환경을 제공했다.

UCSD p-시스템은 나중에 나온 자바 플랫폼과 일부 개념을 공유한다. 둘 다 운영체제와 하드웨어의 차이를 숨기기 위해 가상 머신을 사용하며, 해당 가상 머신용으로 작성된 프로그램을 사용하여 크로스 플랫폼 지원을 제공한다. 마찬가지로 두 시스템 모두 가상 머신을 대상 컴퓨터의 완전한 운영체제로 사용하거나 다른 운영체제 아래의 "상자"에서 실행할 수 있도록 허용한다.

UCSD 파스칼 컴파일러는 이식 가능한 운영체제인 p-시스템의 일부로 배포되었다.

## 역사
UCSD p-시스템은 1974년경 UCSD의 케네스 보울스의 아이디어에서 시작되었다. 그는 당시 등장하던 수많은 새로운 컴퓨팅 플랫폼들이 새로운 프로그래밍 언어가 수용되는 것을 어렵게 만들 것이라고 믿었다. 그는 UCSD 파스칼을 취리히의 휴대용 컴파일러인 파스칼-P2 릴리스를 기반으로 했다. 특히 그는 파스칼을 프로그래밍 교육 언어로 관심을 가졌다. UCSD는 원래 파스칼에 중요한 개선 사항인 가변 길이 문자열과 독립적으로 컴파일된 코드의 "단위"(당시 진화 중이던 에이다 (프로그래밍 언어)에 포함된 아이디어) 두 가지 기능을 도입했다. 니클라우스 비르트는 p-시스템, 특히 UCSD 파스칼이 파스칼을 대중화하는 데 기여했다고 평가한다. 터보 파스칼이 출시되기 전까지는 UCSD 버전이 파스칼 사용자들 사이에서 선두 자리를 유지했다.

UCSD 파스칼의 파스칼 방언은 파스칼-P2에서 구현된 파스칼의 하위 집합에서 유래했는데, 이는 언어의 완전한 구현을 목표로 한 것이 아니라 파스칼 컴파일러의 부트스트랩 키트로서의 기능을 충족시키기 위해 "자체 컴파일할 수 있는 최소 하위 집합"으로 설계되었다. UCSD는 BASIC의 문자열과 몇 가지 다른 구현 의존적 기능을 추가했다. UCSD 파스칼은 나중에 전체 파스칼 언어의 다른 많은 기능을 얻었지만, 파스칼-P2 하위 집합은 다른 방언, 특히 UCSD 방언의 많은 부분을 복사한 볼랜드 파스칼에도 계속 존재했다.

## 버전
[섬네일|파일러, [파일 관리자]]
UCSD p-코드 엔진은 네 가지 버전이 있었으며, 각 버전은 p-시스템과 UCSD 파스칼의 여러 개정판을 포함했다. p-코드 엔진(즉, p-머신)의 개정은 p-코드 언어의 변경을 의미했으며, 따라서 컴파일된 코드는 다른 p-머신 버전 간에 이식할 수 없다. 각 개정은 로마 숫자로 표시되었고, 운영체제 개정은 p-코드 로마 숫자 뒤에 오는 "점" 숫자로 열거되었다. 예를 들어, II.3은 두 번째 p-머신 개정판에서 실행되는 p-시스템의 세 번째 개정판을 나타냈다.

### 버전 I
원래 버전으로, 캘리포니아 대학교 샌디에이고 외부에는 공식적으로 배포되지 않았다. 그러나 버전 I.3과 I.5의 파스칼 소스는 관심 있는 사용자들 사이에서 자유롭게 교환되었다. 특히 패치 개정판 I.5a는 가장 안정적인 버전 중 하나로 알려져 있었다.

### 버전 II
널리 배포되었고 많은 초기 마이크로컴퓨터에서 사용 가능했다. 수많은 버전에는 궁극적으로 애플 II용 애플 파스칼, DEC PDP-11, 인텔 8080, 자일로그 Z80, MOS 6502 기반 머신, 모토로라 68000 및 IBM PC용(PC용 버전 II는 하나의 64K 코드 세그먼트와 하나의 64K 스택/힙 데이터 세그먼트로 제한되었으며, 버전 IV는 코드 세그먼트 제한을 제거했지만 훨씬 비쌌다.

이 시대의 프로젝트 멤버로는 케네스 L 보울스 박사, 마크 앨런, 리처드 글리브스, 리처드 카프만, 피트 로렌스, 조엘 맥코맥, 마크 오버가드, 키스 실링턴, 로저 섬너, 존 반 잔트 등이 있다.

### 버전 III
웨스턴 디지털이 자사의 파스칼 마이크로엔진 마이크로컴퓨터에서 실행되도록 맞춤 제작한 버전. 처음으로 병렬 프로세스 지원을 포함했다.

### 버전 IV
소프텍에서 개발 및 판매한 상업용 버전. 버전 II를 기반으로 했으며, 버전 III의 변경 사항은 포함하지 않았다. 가격 정책, p-코드 인터프리터로 인한 성능 문제, 그리고 (종종 그 위에서 실행되는) 기본 운영체제와의 경쟁으로 인해 잘 팔리지 않았다. 소프텍이 제품을 포기한 후, p-시스템 사용자 및 팬들로 구성된 비교적 작은 회사인 피칸 시스템즈가 제품을 인수했다. 피칸의 합리적인 가격 정책 덕분에 판매가 다소 회복되었지만, p-시스템과 UCSD 파스칼은 점차 기본 운영체제와 컴파일러에 시장을 잃었다. p-코드 카드, 코모도어 CBM 8096, Sage IV, HP 9000, 6502 보조 프로세서가 장착된 BBC 마이크로가 장착된 TI-99/4A에서 사용 가능했다.

## 추가 사용
코르부스 시스템즈 컴퓨터는 모든 사용자 소프트웨어에 UCSD 파스칼을 사용했다. 컨스텔레이션 OS의 "혁신적인 개념"은 파스칼(인터프리터 방식 또는 컴파일 방식)을 실행하고 모든 공통 소프트웨어를 매뉴얼에 포함하여 사용자가 필요에 따라 수정할 수 있도록 하는 것이었다.

## 내용주

## 더 읽어보기
*
* 
* 

## 외부 링크
*, UCSD는 1979년 6월 1일 이전에 작성된 p-시스템의 일부를 비상업적 용도로 공개했다. (참고: 웹페이지는 브라우저 창 크기를 조정한다.)
* UCSD 파스칼 재회, 2004년 10월 22일 UCSD에서 열린 UCSD 파스칼 재회 프레젠테이션 및 비디오
* "도대체 UCSD 파스칼은 무엇이었나?"에 대한 PowerPoint 및 비디오, 2004년 재회에서 발표 PPT  및 비디오
* ucsd-psystem-os , UCSD p-시스템 버전 II.0의 교차 컴파일 가능한 소스 코드
* ucsd-psystem-vm, UCSD p-시스템 p-코드를 위한 휴대용 가상 머신
* UCSD 파스칼 시스템 II.0 사용자 설명서 재구성 
* 소프텍 P-시스템 디스어셈블러
* UCSD P-시스템 박물관 (제퍼슨 컴퓨터 박물관 내)
* UCSD P-시스템  (작은 기계용 파스칼)

분류:운영체제
분류:파스칼 컴파일러
분류:가상 머신
분류:X86 운영체제
분류:중단된 운영체제