파스칼과 델파이의 비교

Comparison of Pascal and Delphi

1960년대 후반과 1970년대 초에 니클라우스 워스가 고안한 파스칼은 프로그래밍 언어이다.원래 Borland Software Corporation이 제작엠바카데로 델파이는 IDE, 표준 라이브러리 세트 및 파스칼 기반 언어로 구성되어 있으며 일반적으로 오브젝트 파스칼, 델파스칼 또는 단순히 '델파이스칼'(엠바카데로의 현재 문서에서는 델파스칼)[1]이라고 부릅니다.처음 출시된 이후 가장 인기 있는 상용 Pascal 구현이 되었습니다.

파스칼을 개발하는 동안 워스는 새로운 버전의 파스칼 컴파일러가 이전 버전과 함께 작성되고 컴파일되는 부트스트래핑 절차를 사용했습니다.따라서, 'P2' 컴파일러는 'P1'이 컴파일할 수 있는 방언으로 작성되었고, 'P3'은 'P2'로 작성되었으며, 'P5'까지 이어졌다.'P5' 컴파일러는 Wirth에 의해 정의된 최종 상태에서 Pascal을 구현하였고, 이후 'ISO 7185 Pascal'로 표준화 되었습니다.

볼랜드 방언은 이전의 인기 UCSD 파스칼과 마찬가지로 워스의 최종 개정판이 아닌 'P4' 버전의 언어를 기본으로 삼았다.표준 파스칼로부터 독립된 많은 진화 후에, 볼랜드 변종은 델파이의 기초가 되었다.이 페이지에서는 델파이와 스탠다드 파스칼의 차이점에 대해 설명합니다.델파이 특유의 언어 확장에는 들어가지 않습니다.다수는 계속 증가하고 있습니다.

표준 파스칼과 델파이의 차이점

1. 프로시저와 기능은 파라미터의 차이에 따라 전달될 수 있습니다.델파이는 명시적인 프로시저 타입을 선언할 필요가 있지만 표준 파스칼은 그렇지 않습니다.

2. 델파이는 goto 스테이트먼트가 현재의 프로시저/기능 본문 이외의 대상을 참조할 수 있는 이른바 '절차외 gotos'를 지원하지 않습니다.

3. 표준 Pascal에는 파일 '버퍼 변수'와 이에 대해 동작하는 'get' 및 'put' 표준 절차가 있습니다.둘 다 델파이에서는 지원되지 않습니다.

(4) 표준 파스칼의 변종 레코드에 따라 특정 변종의 크기를 지정할 수 있다.Delphi는 다음과 같은 형태의 '크기' 동적 변수 할당을 지원하지 않습니다.

신규(p, t) //여기서 t는 변종 레코드 태그 유형입니다.델파이에서는 컴파일하지 않습니다. 

5. '팩' 및 '언팩' 기능은 Dellphi에서 구현되지 않습니다.

6. 델파이 컴파일러는 {및 (*, } 및 *)를 표준 Pascal과 같은 동의어로 취급하지 않습니다.바꿔 말하면

{ 댓글 *) 

델파이에서는 사용할 수 없습니다.대신 Dellphi는 여러 주석 유형이 중첩된 주석을 나타낼 수 있도록 허용하는 방식을 사용합니다.

7. 델파이는 Pascal 표준에서 요구하는 것처럼 Eoln을 공간으로 대체하지 않습니다.행의 끝을 읽을 때, ISO 7185에서는 Eoln 문자를 공백으로 대체해야 합니다.대신 델파이의 eoln을 읽으면 캐리지 리턴용 문자 코드(13)가 표시되고 줄바꿈(10)이 이어진다.

8. 델파이 버전의 Write 및 WriteLn 표준 절차에서는 숫자와 부울란이 기본 필드 폭에 인쇄되지 않고 대신 최소 공간에 인쇄됩니다.예를 들어 델파이에서는

쓰다(5); 쓰다(55); 

는 다음과 같습니다.

쓰다(5:1); 쓰다(55:2); 

그러나 표준 Pascal에서는 다음과 같아야 합니다(TotalWidth는 구현 정의).

쓰다(5:총폭); 쓰다(55:총폭); 

마찬가지로, 부엉이의 경우,

쓰다(거짓의); 쓰다(진실의); 

와 동등하다

쓰다('false':5); 쓰다('진짜':4); 

델파이에서는, 하지만

쓰다('false':총폭); 쓰다('진짜':총폭); 

ISO 7185에 포함되어 있습니다.

9. 델파이는 기존의 Pascal I/O를 사용하여 임시 파일을 지원하지 않습니다.Reset() 또는 Rewrite()를 실행하면 오류가 발생합니다.Standard Pascal에서는 자동으로 삭제되기 전에 프로그램 기간 동안 존재하는 임시 파일을 엽니다.

10. 델파이가 기존의 Pascal RTL의 많은 사용을 여전히 허용하고 있음에도 불구하고 델파이의 특정 라이브러리 기능은 일반적으로 컴파일러가 제공하는 내장 함수를 추가하는 것이 아니라 일반적인 델파이의 코드로 구현됩니다.이 철학은 컴파일러가 RTL을 제공해야 하는 표준 파스칼과는 대조적입니다.예를 들어 Standard Pascal에서 'file' 유형은 레코드 같은 고유 유형이지만 레코드와 함께 다른 컴파일러 정의 유형입니다.반면 Delphi의 TFileStream 클래스는 일반 Delphi 코드로 작성된 일반 Delphi 클래스입니다.마찬가지로 Read, ReadLn, Write 및 WriteLn 표준 프로시저에는 합법적인 Pascal 시그니처가 아닌 시그니처가 있습니다.Delphi가 아직 그것들을 실장하고 있지만, Delphi 고유의 RTL 루틴에 마찬가지로 특별한 처리가 필요한 경우는 거의 없습니다.대신 언어가 '오픈 어레이', 기본 파라미터 및 사용자가 작성한 루틴에서도 사용할 수 있는 절차 오버로드 등의 기능을 포함하도록 진화했습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Delphi Reference - RAD Studio XE2".

추가 정보

외부 링크

  • 표준 ISO 7185 Pascal 웹 사이트 [4]