Object Pascal History/ko

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) italiano (it) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

역사 (원저자: Tao Yue, 상태: 변경)

기원

파스칼은 과학용 컴퓨팅을 위해 생겨난 프로그래밍 언어인 ALGOL에서 파생되었다. 쮜리히에서 있었던 국제 모임에서 ALGOL을 플랫폼에 독립적인 언어로 디자인하였다. 이는 ALGOL을 디자인 하는데 있어 여러 제약에서 상대적으로 자유로움을 제공했지만, 컴파일러를 만드는 작업은 더욱 어려워졌다. 지금과는 달리 그 때는 많은 컴퓨터들이 하드웨어 기능이 부족했던 때이다. 많은 플랫폼들에서 컴파일러가 부족과 ALGOL언에 부족한 기능들, 예로들면, 포인터나 문자형과 같은 기본적인 데이터 형의 부재등이 합쳐져, ALGOL은 많이 보급되지 못햇다. 과학자와 엔지니어들이 당시 많은 플랫폼에서 사용 중이던 FORTRAN을 밀어보기도 했다. 알고리즘을 표현하는 언어로서 인식되는 것을 제외하고는 ALGOL은 거의 사라져버렸다.


Wirth가 Pascal을 발명

1960년대, 몇몇 컴퓨터 과학자들은 ALGOL의 확장을 시도했다. 그 그룹 중 하나였던 스위스 연방 기술원(ETH-Zurich)의 Niklaus Wirth 박사는 ALGOL언어를 만들었던 원 그룹의 맴버이기도 했다. 1971년 여러면에서 ALGOL과 닮은 높은 수준으로 구조화된 언어 스펙을 발표했다. 그는 이 언어의 이름을 파스칼이라 지었다. 파스칼은 16세기 프랑스의 철학자이자 수학자로, 그는 작동하는 기계 디지털 컴퓨터를 만들었던 사람이다.

파스칼 언어는 매우 데이터 지향적이고, 프로그래머로 하여금 새로운 원하는 형태의 자료형을 정의할 수 있도록 하였다. 이런 자유로 인해 매우 강력한 자료형 케르 기능을 구현했는데, 이로써 서로 다른 데이터 형을 섞어 사용하지 못하도록 하였다. 파스칼은 컴퓨터 언어를 가르치는 용도로 매우 광범위하게 보급되었다. 파스칼은 FORTRAN과 달리, 자유로은 흐름을 가지고 있었고, 자연언어와 매우 가깝게 코드를 읽을 수도 있었으며, 덕분에 매우 높은 가독성을 가지고 있었다.


UCSD Pascal

ALGOL언어가 사장된 이유 중 하나는 컴파일러를 만들기 어려웠다는 것이다. Wirth박사는 중간 단계 상태의 플랫폼 독립적인 목적 코드 (object code)를 만들어내도록 파스칼 컴파일러를 만듦으로써 이 문제를 해결했다. 또 다른 프로그램이 이 중간단계의 고드를 실행코드로 바꿀 수 있도록 하였다.

샌디에고 캘리포니아 주립대학(UCSD)의 Ken Bowles교수는 애플 II의 파스칼 컴파일러오 제안하는 기회를 잡았다. 애플 II는 당시 가장 대중적인 마이크로컴퓨터였다. UCSD P-시스템은 표준이 되었고, 많은 대학에서 사용되었다. 이는 다른 언어, 예를 들자면 FORTAN같은 언어를 사용하기 위한 필수적인 메인프레임 시스템에 비해 낮은 비용의 애플 II 컴퓨터가 사용되었던 것이다. 컴퓨팅 세계에 미친 이러한 영향은 IBM의 혁명적인 개인용 컴퓨터의 광고에서도 볼 수 있었는데, 이로인해 PC가 세개의 운영체계 (디지털 리서치의 CP/M-86, 소프트텍의 UCSD P-System, 마이크로소프트의 PC-DOS)를 사용하게 하였다.


Pascal 표준이 되다.

1980년대 초경엔, 파스칼은 이미 많은 대학에 보급이 되었었다. 파스칼이 2가지 사건으로 인해 더욱 인기있게 되었다.

첫째는, 교육평가기관 (미국의 주요 대학 입학 시험을 출재하고 주관하는 기관)이 고등학교 학생들의 상급 과정 진학 시험에 컴퓨터 과학을 추가하기로 결정한 것이다. 이 시험으로 인해, 파스칼 언어가 선택이 되었다. 이로 인해, 제2 학교 학생들과 대학 학생들이 파스칼을 배우기 시작했다. 파스칼은 1999년 까지 상급과정 진학 시험에 사용되었고, 그 이후 C++로 대체된 후, 현재는 빠르게 Java로 대체되고 있다.

두번째는, 볼랜드 인터내셔널이라는 작은 회사가 Turbo Pascal 컴파일러를 IBM PC를 위해 내놓은 것이다. 컴파일러는 Anders Hejlsberg에의해 디자인 되었는데, 그는 나중에 마이크로소프트로 옮겨 C#를 개발하고 Managed Code를 (재)소개하였다.

Turbo Pascal은 가히 혁명이었다. 표준 파스칼에 비해 약간의 개선과 수정을 가했는데, 이는 부수적인 작은 것이고, 실제는 엄청난 성과는 '속도'였다. 터보 파스칼은 분당 수천 라인 컴파일이라는 현기증 나는 속도를 보유했다. 당시의 PC용 컴파일러는 느리고 무겁기 짝이 없었다. 터보 파스칼이 세상에 나왔을 때, 이는 완전히 신선한 공기와 같았다. 곧바로, 터보 파스칼은 PC의 표준 언어가 되었다. PC Magazine이 유틸리티 프로그램의 소스코드를 출판하면, 대개 어셈블리이거나 터보 파스칼이었다.

동시에, 애플은 매킨토시 컴퓨터 시리즈를 출시했다. 당시 파스칼은 발군의 구조적 프로그래밍 언어였고, 애플은 맥 컴퓨터의 표준 언어로 선택을 했다. 맥 프로그램을 위해 프로그래머가 예제 코드, API를 제공받을 때는, 그 모든 코드가 파스칼이었다.


확장

터보파스칼 버젼 1.0 부터 7.0까지, 볼랜드는 지속적으로 언어를 확장했다. 원래의 파스칼은 모듈을 분리해 컴파일하는 기능이 부족하여 비판을 받았었다. Wirth 박사는 심지어 이 문제로 인해 Modula-2라는 새로운 언어를 발표하기도 앴다. 볼랜드는 파스칼에 모듈 기능을 추가했다.

버전 7.0까지, 많은 진보된 기능들이 추가되었다. 그 중 하나가 DPMI(DOS 프로텍티드 모드 인터페이스)로 DOS프로그램을 프로텍티드 모드에서 실행하게 하여 실행속도를 빠르게하며, DOS하에서 메모리 접근가능 영역 640KB라는 벽을 넘어설 수 있게 하였다. Turbo 버젼은 텍스트 기반 윈도우 시스템을 구현하여 프로그래머로 하여금 멋진 사용자 인터페이스를 실질적으로 매우 빠르게 개발할 수 있도록 하였다. 애플의 오브젝트 파스칼 확장을 수용하여 5.5버젼에선 객체지향 파스칼이 구현되었다. Windows 3.0이 나오자, 볼랜드는 윈도우용 터보 파스칼을 출시해, 그래픽 사용자 인터페이스로 빨라진 속도와 손쉬운 사용을 이어갔다. 이 때만해도 파스칼의 미래는 탄탄해 보였다.

세상은 바뀌었다.

그러나, 그게 그런 것이 아니었다. 1970년대에, AT&T 벨 연구소의 Dennis Ritchie 와 Brian Kernighan 이 C 프로그램 언어를 만들었다. Ritchie는 그 후 Ken Thompson과 함께 UNIX 운영체계를 디자인 했다. 그 당시, AT&T는 미국에서 장거리 전화 서비스를 정부의 인가하에 독점을 하고 있었다. 독점의 대가로 전화 사업은 규제되었고, 컴퓨터 사업으로 진입은 금지 되었다. AT&T는 운영체계를 연구하였으나 그걸로 시장에 진출할 수는 없었기에, UNIX를 대학에 완전한 소스코드와 함께 무료로 공여했다. 그리하여, 당시 그 세대의 컴퓨터 공학과 대학생들은 대학에서 C와 운영체계를 공부하였다. 천천히 그렇지만 확실하게, C가 컴퓨터 프로그래밍 세계로 진출하게 되었다.

90년대에 들어 몇몇 거대한 회사가 다른 프로그래밍 언어에 초점을 맞추자 파스칼은 심각한 타격을 입었다. 예를 들어 마이크로 소프트는 비주얼 베이직과 C로, 애플은 그들의 API를 파스칼에서 C로 이전했고, 후에 Object C로 변경하였다. 운영체계를 만드는 회사로 부터 지원을 받지는 못했지만, 파스칼은 Delphi와 Free Pascal로 많은 지원자를 아직도 갖고 있다.

그렇다면 파스칼 언어를 공부하는 이점은 무엇인가?

과거의 영광이 바래져가고 있지만, 파스칼은 아직도 꽤 유용하다. 파스칼의 이점은 파스칼이 자연언어를 이용한 매우 명확한 문법체계를 가지고 있어 (예를 들면 begin/end) 코드를 읽고, 유지 보수가 매우 용이하다는 것이다.

또다른 이유: 속도와 크기. 파스칼의 컴파일러는 빛의 속도만큼 빠르고, 델파이와 Free Pascal도 예외가 아니다. C로는 몇시간 걸릴 컴파일이, 파스칼로는 비슷한 크기의 프로그램이 1분도 걸리지 않는다. 게다가 파스칼 IDE는 델파이 IDE와 Lazarus IDE에서 보듯이 생산성 측면에서 아직도 최고 수준이다.

또한, 파스칼은 아직도 많은 대학에서 선호되는 언어로 남아있고, 프로그래밍 교육을 위한 체계가 잘 갖추어져 있다. 학생이 프로그래밍을 하는 과정에서 문제가 발생할 소지가 적다. 간단한 절차적 프로그래밍을 가르치는데 있어, 파스칼을 아직도 좋은 선택이다. 미국 이외의 국가에서 여전히 파스칼은 장수하고 있으며, 국제 정보 올림피아의 공식언어로 선정되어 있기도 하다. 기본적인 프로그래밍 배경은 많은 기술직에서 유용하고, 파스칼은 C/C++보다 배우기 쉽다.

오늘날, 파스칼은 델파이, Free Pascal과 Lazarus를 이용해 틈새시장을 공략하고 있다. 많은 소규모의 프리웨어, 쉐어웨어, 오픈소스와 상업용 프로그램이 파스칼/델파이로 개발되고 있다. 그러니, 즐겁게 공부하기를 바란다. 파스칼은 컴퓨터 프로그래밍을 접하는 매우 효과적인 언어다. C처럼 위험하지 않고, C++처럼 혼란스럽지도 않으며, 자바처럼 느리지도 않다.

previous contents next