PL

[PL] Data types(1)

서노리 2022. 4. 18. 21:28
반응형

C언어의 자료형

 

Java의 자료형

C에서는 부호가 없는 unsigned 정수형을 지원하지만 Java에서는 지원하지 않는다. 또한 Java의 non-primitive data type의 종류에는 array, list, class 등이 있다.

 

기본 자료형(Primitive data types)

기본 자료형이란 자신을 제외한 또다른 자료형을 이용해서 정의되지 않는 자료형을 말한다.

 

※ 기본 자료형의 종류

  • 정수형(Integer) - byte, short, int, long ...
  • 실수형(Float point) - float, double
  • Complex - 복소수 계산에서 사용
  • Decimal
  • Boolean - true or false
  • 문자형(Character)

※ 문자열 타입(String data type)

C/C++ 에서는 문자열 타입이 따로 정의되지 않고 char형의 배열 형태로 정의되기 때문에 non-primitive data type이다. 반면 Python에서는 string 타입이 primitive data type으로 정의되어 있고 Java에서는 마치 primitive data type 처럼 문자열을 다루지만 이는 String 클래스를 통한 방법이기 때문에 hybrid적인 성격을 띄고 있다. 

 

※ 문자열 길이 제한에 따른 분류

  • Static
    - 문자열이 한 번 길이가 정해지면 바꿀 수 없음
    - 임의로 바꾸게 되면 이는 다른 메모리를 새롭게 할당하게 됨
    - compile-time descriptor을 사용함
    - ex) Java

  • Limited Dynamic Length
    - 문자열 최대 길이에 제한이 있으며 실행중에 문자열의 길이를 바꿀 수 있음
    - C/C++의 경우 문자열 끝을 나타내는 널문자의 위치를 변화시켜 문자열의 길이를 바꿀 수 있음
    - C/C++을 제외한 다른 언어의 경우 run-time-desciptor를 통해 문자열의 길이를 바꿀 수 있음

  • Dynamic Length
    - 문자열 최대 길이에 제한이 없고 실행중에 문자열의 길이를 바꿀 수 있음
    - ex) JavaScript

Enumeration type(열거 타입)

가능한 모든 경우의 값을 명시해두고 사용하는 타입

enum Day{MON, TUE, WED, THU, FRI, SAT, SUN};
enum Day today = MON;

 

반응형

'PL' 카테고리의 다른 글

[PL] Data types(3)  (0) 2022.04.23
[PL] Data types(2)  (0) 2022.04.18
[PL] Names, Binding, Scope  (0) 2022.04.17
[PL] 어휘분석과 구문분석(Lexical and Syntax Analysis)  (0) 2022.04.17
[PL] Semantic의 표현  (0) 2022.04.17