Log to grow

[C# 기초] 토큰 (예약어, 식별자, 리터럴, 연산자, 구분자) 본문

PL/C#

[C# 기초] 토큰 (예약어, 식별자, 리터럴, 연산자, 구분자)

kkkrrr 2020. 1. 2. 03:31

1. 토큰이란

토큰이란 문법적으로 더 이상 나누어질 수 없는 요소를 말한다. 예를 들어, new object 라는 구를 생각해보자. 이 때 new 와 object는 나누어 쓰어도 각각이 가진 고유한 의미를 잃지 않는다. 하지만 new를 'n'와 'ew'로 나누어 쓴다면 'new'가 가진 고유한 의미를 잃게 된다. 즉, new와 object 처럼 더 이상 나누어질 수 없는 요소를 토큰이라고 한다. 

 

2. 토큰의 종류

토큰은 아래 표와 같이 크게 5가지 종류로 구분할 수 있다. 각 종류에 해당하는 토큰을 일일히 외울 필요는 전혀 없다. 하지만, 어떤 토큰을 보고 종류를 구분할 수 있어야 한다. 그래야 앞으로 C#을 공부하며 자연스럽게 등장할 설명들을 이해할 수 있다.

 

종류
예약어 (키워드) new, object, int, for 등
식별자 변수, 메서드, 클래스의 이름 등
리터럴 142, 1643.5, "hello" 등
연산자 +, -, *, / , &, % 등 
구분자 (), {}, ;, / 등

2-1 예약어 (키워드)

예약어란 C# 컴파일러가 이해할 수 있도록 미리 정의해둔 토큰이다. 쉽게 생각하여 '특별한 뜻을 가지고 있는 단어' 라고 생각하면 된다. 예약어는 식별자로 사용될 수 없다.

 

아래의 페이지에서 C# 예약어 전부를 확인할 수 있다.

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/

 

C# 키워드

 

docs.microsoft.com

 

2-2 식별자

식별자란 프로그래밍 요소들에 붙여주는 이름이다. 프로그래밍 요소는 클래스, 변수, 메서드 등이 될 수 있다. 

예를 들어, 아래 코드에서 a, printHello 와 같은 것들이 식별자라고 할 수 있다.

 

int a;

void printHello()
{
	Console.WriteLine("Hello");
}

 

 

2-3 리터럴

리터럴은 어떤 숫자, 문자가 가진 값 자체를 의미한다. 예를 들어, 아래와 같은 코드에서 long 은 키워드, number 는 식별자, 3이 리터럴이 된다. 

 

long number = 3;

 

2-4 연산자

연산자는 어떤 연산을 수행하기 위한 기호이다. 연산자는 수학에서도 자주 등장하는 개념이므로 쉽게 이해할 수 있다. '+' 의 경우 덧셈 연산을 수행하는 덧셈 연산자이고, '*' 의 경우에는 곱셈 연산을 수행하는 곱셈 연산자이다.

C#에서 사용되는 연산자와 연산자에 대한 자세한 내용은 아래 페이지에서 확인할 수 있다.

 

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/

 

C# 연산자 - C# 참조

C# 연산자(C# 참조)C# operators (C# reference) 이 문서의 내용 --> C#은 기본 제공 형식에서 지원되는 여러 연산자를 제공합니다.C# provides a number of operators supported by the built-in types. 예를 들어 산술 연산자는 숫자 피연산자를 사용하여 산술 연산을 수행하고 부울 논리 연산자는 bool 피연산자를 사용하여 논리 연산을 수행합니다.For example, arithmet

docs.microsoft.com

 

 

2-5 구분자

구분자는 프로그래밍 요소를 구분해주는 기호이다. 쉽게 생각해서 연산자를 제외한 모든 기호를 구분자라고 생각하면 된다. 앞으로 코드를 작성하기 위해 꼭 짚고 넘어가야 할 구분자가 2가지 있다.

 

첫 번째는 ';' (세미콜론) 이다. 세미콜론은 문장을 끝낼 때 사용된다. 일상 언어에서 마침표와 같은 역할을 하는 것이다. 어떤 문장이 끝났는데도 세미콜론을 입력하지 않으면 컴퓨터는 같은 문장이라고 인식하여 오류가 발생하게 된다. 컴퓨터는 일상 언어와 달리 줄을 인식하지 못하므로 세미콜론을 입력하지 않고 줄만 변경하면 같은 문장이라고 인식한다.

 

두 번째는 '//' 와 '/*' '*/' 이다. 이 두 종류의 구분자는 주석을 표시하기 위한 구분자이다. 주석이란 컴퓨터가 코드로 인식하지 않아 메모의 역할을 할 수 있는 코드이다. 예를 들어, 어떤 코드를 입력하고 주석을 남기고 싶다면 아래와 같이 그 줄의 맨 앞에 '//' 구분자를 넣어주면 된다. 

 

// number 변수 선언
number int = 1;

위 예에서 첫 번째 줄은 '//' 표시 덕에 컴퓨터가 인식하지 못하고, 두 번째 줄부터 코드로 인식한다. '//' 구분자는 한 줄을 주석처리 하는 구분자이고 여러 줄을 주석처리 하기 위해서는 아래와 같이 '/*', '*/' 기호를 사용한다.

 

/* 여러
줄의
주석 표시 */

 

 

 

 

 

 

 

Comments