파스칼
파스칼(Pascal) 1969년 스위스의 컴퓨터 과학자 니클라우스 비르트(Niklaus Wirth)가 개발한 교육용 프로그래밍 언어이다. 파스칼이라는 이름은 17세기 프랑스의 유명한 수학자이자 철학자인 블레즈 파스칼(Blaise Pascal)에게서 이름을 따왔다. 파스칼 언어는 포인터(pointer)를 사용한 구조적 프로그래밍을 특징으로 한다. 파스칼에 객체 지향(OOP) 개념을 포함하여 오브젝트 파스칼(Object Pascal) 언어가 생겨났고, 이 오브젝트 파스칼을 일부 변형하여 델파이(Delphi) 프로그래밍 언어가 생겨났다.
개요
프로그래밍 언어의 한 종류로써, 컴파일러 규모가 크고 다양해서 복잡한 프로그램 처리에는 용이하지만, 배우기가 어렵고 구조가 복잡했던 알골이라는 언어와는 다르게 쉽고 효율적으로 프로그램을 작성할 수 있도록 간결성과 신뢰성에 중점을 두어 개발된 언어가 파스칼이다. 풍부한 데이터구조, 구조화 프로그래밍에 적합한 제어구조를 가졌으며, 주로 과학계산용 중,소형 컴퓨터에서 사용된다. 데이터 형식에는 스칼라 데이터형식, 구조 데이터형식, 포인터 데이터형식 등이 있다. 파스칼은 C언어와 유사한 점이 있지만, 코드를 간결하게 하고 버그를 더 쉽게 잡아내기 위한 목적으로 몇가지 기능을 제한함으로써 C언어보다 활용도가 떨어지는 언어가 되었다.
역사
1960년대 컴퓨터 언어 역사의 상당 부분은 ALGOL60 언어로 추적될 수 있다. ALGOL은 알고리즘을 명확하게 설명할수 있다는 명백한 목표를 가지고 1950년대에 개발되었다. 오늘날까지 언어에서 공통으로 남아 있는 구조화된 프로그래밍을 위한 많은 기능들을 포함했다. 조입직후 1962년 워스는 헬무트 웨버와 함께 오일러 프로그래밍 언어에 관한 논문 작업을 시작했다. 오일러은 ALGOL의 구문과 많은 개념에 기초했지만 파생어는 아니었다.그것의 주요 목표는 동적 목록과 유형을 추가하는 것이었고 이를 리프와 유사한 역할에 사용할 수 있게 했다. 1965년에 완성되었다. 이때까지 ALGOL의 여러가지 문제가 확인되었는데 특히 표준화된 문자열 시스템의 부족이 두드러졌다. 언어유지를 담당한 그룹은 개선하기위해 ALGOL X 프로세스를 시작했다. 워스와 Tony Hoare는 문자열을 추가하고 일부 구문을 정히하기 위해 보수적인 수정안을 제출 했다. 수정안은 너무 경미해서 새로운 표준 ALGOL로 사용할 가치가 없다고 여겨졌기 때문에 워스는 언어용 컴파일러를 썻고 이것이 ALGOL W로 알려지게 되었다.
버전
- 2000년 7월 12일 : FPC(Free Pascal Compiler) 1.0.0버전이 출시되었다.
- 2000년 10월 12일 : FPC 1.0.2버전이 출시되었다.
- 2000년 12월 31일 : FPC 1.0.4버전이 출시되었고, 안정화 작업을 하였다.
- 2005년 5월 15일 : FPC 2.0.0버전이 출시되었고, 향상된 MacPas모드, 변형 지원 기능 향상, 언어 파일 업데이트, 초기화되지 않은 변수에 대한 경고 개선, 많은 소규모 버그 및 호환성 수정 등 다양한 기능향상 및 버그 수정이 이루어졌다.
- 2005년 12월 8일 : FPC 2.0.2버전이 출시되었고, 2.0.0버전의 버그 수정이 이루어졌다.
- 2007년 9월 10일 : FPC 2.2.0버전이 출시되었고, 윈도우64, 윈도우CE(윈도우 모바일), 닌텐도 게임보이 어드밴스, 닌텐도DS 등의 새로운 플랫폼을 지원하게 되었으며, 컴파일 중 메모리 사용 감소 및 컴파일 속도 향상, 다중 리소스 파일 지원, Windows에서 COM / OLE 호환 가능 등 다양한 기능향상 및 버그 수정이 이루어졌다.
- 2010년 1월 1일 : FPC 2.4.0버전이 출시되었고, 드워프 디버그 정보를 개선하였으며, 많은 컴파일러 버그 수정과 라이브러리 업데이트 및 전체 프로그램 최적화를 하였다.
- 2011년 5월 22일 : FPC 2.4.4버전이 출시되었고, XML단위 개선, chm단위 개선, fppkg 및 fpmake 개선, 데이터베이스 유닛 개선, OS/2RTL의 멀티 스레딩 지원 수정 등 다양한 개선과 버그 수정이 이루어졌다.
- 2012년 1월 1일 : FPC 2.6.0버전이 출시되었고, 델파이 호환성 모드 개선, 일반 일반어 구문의 델파이 호환성 개선, 새 ARM 코드 생성기 기능 추가, ARM VFPv2 및 VFPv3 부동 소수점 장치 지원 등 언어 기능들을 많이 추가하고 다양한 플랫폼에 대한 지원을 추가 및 개선하였다.
- 2013년 2월 23일 : FPC 2.6.2버전이 출시되었고, ARM 아키텍처의 기능 수정 및 향상, 새로운 패키지 fpindexer (인덱싱 엔진)추가, fcl-base (및 RTL의 기본 클래스)에 관찰자 패턴 추가, fcl-db수정 및 개선, fcl-passrc (및 fpdoc) 수정 및 개선, PTCPas 및 gtk2 업데이트 등 새로운 기능들이 추가되고 개선되었다.
- 2014년 3월 11일 : FPC 2.6.4버전이 출시되었고, fcl-db수정 및 개선, 웹 및 json 패키지 동기화, chmcmd 컴파일러 개선 등 다양한 기능들이 개선되었다.
- 2015년 11월 25일 : FPC 3.0.0버전이 출시되었고, 몇 가지 새로운 플랫폼, 코드 페이지 인식 문자열 및 통합 파스칼 소스 저장소에 대한 지원을 갖췄다.
- 2017년 2월 15일 : FPC 3.0.2버전이 출시되었고, 3.0버전에 대한 버그 수정이 이루어졌다.
- 2017년 11월 28일 : FPC 3.0.4버전이 출시되었고, 3.0버전에 대한 버그 수정이 이루어졌다.
특징
- 언어구문
파스칼은 원래의 형태로는 순수하게 절타적인 언어로서 마치 단일 진술이나 시작 진술 블록에 대한 범위 내의 경우와 같은 유보적인 단어화 함께 ALGOL과 유사한 정통적인 제어 구조를 포함 그리고 파스칼은 기록,변형,포인터,열거,세트및 절차/포인터와 같이 원래 ALGOL 60 유형에 포함되지 않은 데이터 구조를 가지고 있다.
- 데이터 형식
파스칼 및 여러 다른 널리 사용되는 프로그래밍 언어의 한 유형은 변수가 저장할 수있는 값의 범의를 정의하는 방식으로 변수를 정의하며,수행 할 수있는 일련의 연산을 정의 합니다.
integer :정수(전체)숫자 real :부동소수 boolean :참 또는 거짓의 값 char :순서 문자 집합의 단일 문자 string :문자의 시퀸스 또는 문자열
- 하위 범의 유형
서수 데이터 유형의 하위 범위 도 작성할 수 있습니다.
var x:1..10; y:'a'..'z';
- 세트 유형
var의 set1과는 :tpxm dml 1...(10); set2 : 일련 의 'A'..'Z';
- 타입 선언
입력 X = 정수; Y = X;
종류
파스칼은 ALGOL W의 노력에 영향을 받았다 컴파일러와 런타임에 효율적인 언어를 제작하고 잘 짜여진 프로그램을 개발할 수 있도록 하며 구조화된 프로그래밍을 가르치는데 유용할 것이다.
- 오브젝트 파스칼(Object Pascal) : 래리 테슬러는 언어에 객체 지향적인 확장을 추가하는 아이디어에 대해서 워스와 대응했다. 리사 프로그램이 희미해져 맥으로 대체되면서 오브젝트 파스칼로 알려진 추가 버전이 만들어졌다.
장단점
장점
파스칼의 장점은 자연언어를 이용한 매우 명확한 문법체계를 가지고 있기 때문에 코드를 읽고, 유지 및 보수가 용이하다는 것이다. 그리고 C언어로는 몇시간단위로 걸릴 컴파일 프로그램이 파스칼로는 1분도 걸리지 않을만큼 파스칼의 컴파일속도는 매우 빠르다. 게다가 파스칼 IDE는 델파이 IDE와 Lazarus IDE에서 보듯이 생산성 측면에서 아직도 최고 수준이다. 또한 파스칼은 아직 많은 대학에서 선호되는 언어로 남아있는데, 그 이유로는 학생이 프로그래밍을 하는 과정에서 문제가 발생할 소지가 적고, C, C++보다 배우기가 쉽기 때문이라고 할 수 있다.
단점
활용
언어 초기 성공 사례 중 하나는 다른 플랫폼으로 포팅할수 있는 맞춤형 운영 체제에서 실행되는 버전인 UCSD Pascal의 도입이었다.
각주
참고자료
- T.M.I, 〈PASCAL-프로그래밍언어〉, 《티스토리》, 2008-09-19
- 파스칼 공식 홈페이지(free Pascal) - https://wiki.freepascal.org/Object_Pascal_History/ko
같이 보기