티스토리 뷰

오늘의 IT정보는 프로그래밍언어와 관련되어 도움이 되는 정보를 모왔습니다. 누구나  IT를 하신다면 내용은 아시는게 좋겠죠.질문입니다) 컴파일러와 인터프리터의 차이는 무엇일까요. 답변입니다) 컴파일러는 프로그램 코드를 기계어 코드로 바꾸어서 해당 기계에서 실행되도록 하는 것입니다. 하지만 코드를 기계어 코드로 바꾸는 중에 OS에서 작성한 프로그램이 실행되는데 필요한 것들을 받아오는 경우와 OS에 인터럽트를 주는 부분 때문에 하나의 시스템에서 컴파일 한 것은 같은 OS나 같은 CPU시스템에서만 작동하게 됩니다.(예를 들어, 윈도우에서 컴파일한 것은 리눅스에서 동작하지 않습니다.) IT프로그래밍 언어에서 인터프리터는 별도의 컴파일 과정 없이 실행될 곳에 있는 번역기를 통하여 실행됩니다. 이 방식은 변역기만 있다면 어디에서든 실행이 가능하지만 번역기 시스템에서 한 줄 한 줄 읽어서 실행하기 때문에 실행속도가 컴파일러에 비해서 느립니다. 질문입니다) 많이 사용되어지는 IT프로그래밍 언어인 Java 언어 프로그램을 실행하는 방식은? 답변입니다) java 언어는 컴파일러와 인터프리터를 모두 사용한 형태라고 합니다. 그 이유는 java코드를 컴파일하여 Java Virtual Machine에서 이 컴파일된 기계어 코드를 가지고 실행을 하기 때문입니다. 그로인하여 java 언어는 컴파일러의 장점인 빠른 실행속도와 인터프리터의 장점인 VM만 있다면 어느 곳에서든 실행 가능한 이동성을 가집니다.질문입니다) 대표적 IT프로그래밍 언어인 C언어에서 변수의 초기화 방법은? 답변입니다) 초기 C에서는 “#define문”으로  기호 상수를 선언하였지만 ANSI C 표준에서 상수 선언하고부터는 “자료형 변수이름 = 초기값;“ 방식도 사용합니다. 여기서 초기값에는 배열도 가능합니다. 질문입니다) Type checking이란 무엇이며, static type checking과 dynamic type checking에 대해 논하고, structural equivalence와 name equivalence를 설명해보면? 답변입니다) Type checking이란 프로그램이 의미가 있는지 타입을 중심으로 검사하는 것입니다. 즉 프로그램에서 타입이 올바르게 사용되고 있는지 검사입니다. 정적 형 검사 (static type checking)는 모든 변수의  형 선언 요구합니다. 장점으로는 실행 시간 효율이 높지만 단점으로 자료 생성, 소멸, 내용 변경에 많은 제약이 존재합니다. 정적 형 검사의 언에에는 Java, C, Fortran, Algol, Pascal 등의 IT프로그래밍 컴파일러 언어가 있습니다. 동적 형 검사 (dynamic type checking)는 선언문을 사용 안하는 특징을 가집니다. 장점으로는 프로그래밍의 단순화, 유연성이 높은 점이 있지만 프로그램 실행 시간 지연과 자료 표현상의 효율 저하, 복잡한 기억 장소 경영 기법 요구 등의 단점이 있습니다. 대표적인 동적 형 검사 언어에는 Lisp, APL, Snobol 4 등의 IT프로그래밍 인터프리터 언어가 있습니다. 구조적 일치(Structural equivalence)는 두 변수는 같은 구조를 가지면 같은 형이라는 말입니다. 이름 일치(Name equivalence)는 두 변수의 형은 동일한 사용자 정의나 내장형 이름일 경우, 또는 같은 선언에 나타난 경우에만 일치한다는 것입니다.  질문입니다) Block이란 무엇일까요. 답변입니다) 블록은 서로 밀접한 선언문, 실행문을 하나의 단위로 묶어 프로그램 실행 단위로 나누고, 블록 내 변수의 유효범위를 결정하기 쉽도록 하는 언어적 개념입니다. 이상 IT프로그래밍을 하는데 있어 기본이되는 정보를 정리해보았습니다. IT업계에 종사하시는 분들에게 도움이 되셨으면 합니다.


 

댓글