Delphi [델파이 문법] 문법 요소 #1

2012.09.17 19:03

관리자 조회 수:7578

델파이 문자 셋

델파이 언어는 유니코드(Unicode) 문자셋(character set)을 사용하며, 여기에는 유니코드
문자들과 영숫자 및 밑줄이 포함됩니다. 대/소문자는 구분하지 않습니다. 스페이스 문자와
ASCII 제어 문자들(리턴 혹은 개행 문자인 ASCII 13을 포함, ASCII 0부터 31까지)은 공백
(blank)이라고 부릅니다.

RAD 스튜디오 컴파일러는 파일에 BOM(byte order mark) 헤더가 있을 경우 UCS-2 혹은
UCS-4 인코딩된 파일을 허용합니다. 하지만 UTF-8 이외의 포맷을 사용할 경우 컴파일 속
도가 느려질 수 있습니다. UCS-4로 인코딩된 소스 파일의 모든 문자들은 UCS-2에서 서로
게이트 페어(surrogate pair) 없이 표현 가능해야 합니다. 서로게이트 페어를 가진 UCS-2
인코딩(GB18030 포함)은 codepage 컴파일러 옵션이 지정된 경우에만 허용됩니다.

기본 문법 요소들은 토큰이라고 불리며, 조합되어 표현식, 선언 및 문장을 구성합니다. 문장
은 프로그램 내에서 실행될 수 있는 알고리즘 동작을 기술합니다. 표현식은 문장에서 나타나
는 문법 단위로서 값을 나타냅니다. 선언은 표현식과 문장에서 사용할 수 있는 식별자(함수
나 변수의 이름 등)를정의하고, 적절한 경우 식별자를 위한 메모리를 할당합니다.


기본적인 문법

가장 단순하게 보자면, 프로그램은 구분자(separator)로 단락지어지는 연속된 토큰들입니
다. 토큰은 프로그램에서 의미를 가진 텍스트의 최소 단위입니다. 구분자는 공백이거나 주석
(comment)입니다. 엄밀히 말하면, 반드시 두 토큰 사이에 구분자를 두어야 하는 것은 아닙
니다. 예를 들어 다음의 코드는,

1.png

완벽하게 문법에 맞습니다. 하지만, 관례에 따르고 가독성을 높이기 위해 다음과 같이 코드
를 작성하시기 바랍니다.

2.png

토큰은 특수 기호(symbol), 식별자, 예약어, 지시어, 숫자, 레이블, 문자열로 분류됩니다. 구
분자는 토큰이 문자열인 경우에만 토큰의 일부가 될 수 있습니다. 인접한 식별자, 예약어, 숫
자, 레이블 사이에는 하나 이상의 구분자가 있어야 합니다.


특수 기호

특수 기호는 문자나 숫자, 혹은 이들의 쌍이 아닌 문자들로서 고정된 의미를 가진 문자들입
니다. 다음 단일 문자들은 특수 기호입니다.

# $ & ‘ ( ) * + , - . / : ; < = > @ [ ] ^ { }

다음 문자 쌍들도 역시 특수 기호입니다.

(* (. *) .) .. // := <= >= <>

다음의 표는 같은 의미를 가진 기호들을 나열합니다.

3.png

왼쪽 대괄호 [는 왼쪽 괄호와 마침표의 쌍 (.과 같은 의미입니다.
오른쪽 대괄호]는 마침표와 오른쪽 괄호의 쌍.)과 같은 의미입니다.
왼쪽 중괄호 {는 왼쪽 괄호와 별표 (*와 같은 의미입니다.
오른쪽 중괄호 }는 별표와 오른쪽 괄호 *)와 같은 의미입니다.


식별자

식별자(identifier)는 상수, 변수, 필드, 타입, 속성, 프로시저, 함수, 프로그램, 유닛, 라이브러
리, 패키지를 표시합니다. 식별자의 길이는 아무런 제한이 없지만 처음 255개의 문자만 의미
를 가집니다. 식별자는 문자나 밑줄(_)로 시작해야 하고 공백을 포함할 수 없습니다. 첫 번째
문자 뒤에는 문자, 숫자 및 밑줄이 올 수 있습니다. 예약어는 식별자로 사용될 수 없습니다.
델파이 언어에서는 대소문자를 구분하지 않으므로 CalculateValue와 같은 식별자는 다음
중 어떤 방식으로도 쓸 수 있습니다.

4.png

유닛 이름은 파일 이름과 같기 때문에 대소문자가 일치하지 않으면 경우에 따라 컴파일에 문
제를일으킬수도있습니다. 더자세히알아보려면, “유닛참조와uses 절”을 참고하십시오.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 14387
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13023
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15532
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21064
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22297
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17933
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38228
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173741
1323 BOGO 프로모션 툴 다운로드 받는 방법 안내(2015.6.1~2015.6.30 구매고객) 관리자 2014.06.16 8772
1322 델파이 XE2의 Namespace 문제 박병일 2012.01.19 8691
1321 [델파이 문법] 프로시저와 함수 #1 file 관리자 2012.07.23 8653
1320 [링크]안드로이드를 위한 데이터 스냅 서버 박병일 2012.01.12 8427
1319 Firemonkey MAC OSX 에서 ComboBox 다운현상 [2] c2design 2012.03.28 8338
1318 VCL 폼을 파이어몽키 폼으로 바꿀수 있는 컨버터 프로그램 file 박병일 2012.03.01 8325
1317 Platforms Expert for XE2 Beta 2 file 박병일 2012.02.06 8325
1316 [동영상강의] 델파이 기본교육_3.유니트구조와 코드작성1 관리자 2012.05.03 8282
1315 [델파이 문법] 데이터 타입, 변수 및 상수 #2 file 관리자 2013.02.04 8214
1314 [델파이 문법] 프로그램과 유닛 #2 file 관리자 2012.09.06 8205
1313 RadPHP 한글문제 관리자 2012.04.13 8192
1312 [참고] MAC OSX 어플리케이션 프로젝트 경로 문제 [1] c2design 2012.03.23 8137
1311 [델파이 문법] 클래스와 객체 #13 file 관리자 2012.06.11 8024
1310 [델파이 문법 시리즈] #1. 익명메소드 - 문법 file 관리자 2012.04.04 7999
1309 dbExpress 에는 TUpdateSQL 컴포넌트가 없어요! file 박병일 2012.03.05 7952
1308 VCL Style을 사용하면서 Edit 콘트롤의 컬러 변경하기 file 박병일 2012.02.08 7942
1307 [델파이 문법 시리즈] #8. 제네릭 - 문법 변경 사항(마지막) file 관리자 2012.04.03 7868
1306 [추가자료] 델파이에서 안드로이드 앱 개발 "환경설정과 개발의 시작" [1] 관리자 2013.10.01 7819
1305 Runtime Packages 옵션으로 프로그램(배포) 용량 줄이기 [4] file Humphery 2013.12.19 7754
1304 20120510 "C++로 윈도우용과 맥용을 동시에 개발하기" 세션 동영상 관리자 2012.06.06 7751