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

2012.09.17 19:03

관리자 조회 수:7596

델파이 문자 셋

델파이 언어는 유니코드(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 15470
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13974
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16505
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22062
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23278
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18933
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39266
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174729
70 [Delphi week 2015] 윈도우 3.11에서 델파이1.0 사용하기 관리자 2015.02.13 1138
69 Thalmic Labs의 MYO Armband Delphi SDK Beta7입니다. 쭈니아빠 2015.04.18 1135
68 [DelphiCon 요약] 델파이로 웹 다루기 (Powering the Web with Delphi) file 관리자 2021.02.16 1128
67 델파이로 빅데이터 데이터베이스 연동하기(Cassandra, Couchbase, MongoDB) 험프리 2017.10.30 1119
66 [10.4] 커스텀 매니지드 레코드(Custom Managed Records) 험프리 2020.05.14 1116
65 20150204 VCL 개발자를 위한 Speed UP! RAD스튜디오 관리자 2015.02.05 1104
64 [추가된 문법] DLL 정적 호출 시 지연 호출(Delayed)-델파이 2010 추가 김원경 2016.12.27 1097
63 [VCL] TaskDialog 컴포넌트 소개 Humphery 2015.02.25 1092
62 [따라하기] 인공지능 오목게임(6) - 흑백 바둑알 놓고 위치저장 file 대화마을 2017.10.01 1058
61 델파이 웹 개발: TMS WEB CORE VS. UNIGUI VS. INTRAWEB 관리자 2020.12.10 1041
60 파스칼(PASCAL) 언어 50년과 델파이(DELPHI) 관리자 2021.03.31 1033
59 [무료 온라인 세미나] Delphi Week 2015 file 관리자 2015.02.07 1014
58 [팁] VLC 플레이어(ActiveX Import 해) 사용하기 file 험프리 2020.09.22 1005
57 데브기어 컴포넌트 컨버터 원리와 구조 설명 험프리 2019.10.11 987
56 수원과학대 학생이 델파이로 개발한 '축구 리그 앱' 관리자 2017.11.24 982
55 [따라하기] 인공지능 오목게임(5) - 바둑알 놓기 [2] file 대화마을 2017.09.22 963
54 윈도우10에서 활용 가능한 델파이만의 5가지 기능들 관리자 2020.02.04 960
53 [VCL] TaskDialog 컴포넌트 소개 Humphery 2015.02.03 926
52 [DelphiCon 요약] 델파이 고성능 구현 (High Performance Delphi) 관리자 2020.12.27 901
51 델파이에서 파이썬 표현식 활용하기 (PYTHON4DELPHI 샘플 앱) 관리자 2020.11.03 876