본문 바로가기

Computer Science

컴파일이란 무엇이며, 자바스크립트는 인터프리터 언어인가? 컴파일이란 무엇인가? 컴파일은 우리가 작성한 소스 코드를 오브젝트 코드로 변환시키는 과정이다. 인간이 알아듣기 쉬운 프로그래밍 언어인 High Level Language를 기계가 알아들을 수 있는 0과 1로 이루어진 기계 언어인 Low Level Language로 변환시키는 것이다. 이 과정은 네 단계로 세분화해볼 수 있다. 1. 전처리기 C언어로 예를 들자면, #으로 시작되는 소스코드를 처리하는 단계이다. stdio.h와 같은 헤더 파일을 불러와 코드 상으로 필요한 내용으로 채워주고 define으로 먼저 정의된 상수를 symbol table에 저장하는 등 매크로를 확장한다. 2. 컴파일 High Level Language인 소스코드를 기계언어에 가까운 Low Level Launguage인 어셈블리 언어.. 더보기
알고리즘과 정렬 | Bubble, Selection, Insertion, Merge, Heap, Quick 알고리즘은 프로그래머스나 백준에서 푸는 문제가 아니라 연산(컴퓨팅) 시 입력된 자료를 원하는 출력의 형태로 만들어내는 처리 과정이다. 이 처리 과정이 얼마나 정확하고 효율적인지에 따라 좋고 나쁨을 판별할 수 있다. 여기서 많이 들어봤던 시간 복잡도의 개념이 나오는데, 다양한 정렬 알고리즘을 정리하고 비교해볼 때 참고해볼 예정이다. ⌛️ 시간 복잡도란? 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구현했는지 확인하는 척도이다. 최악, 최선, 평균으로 나타낼 수 있는데 프로그래밍에서는 주로 최악의 상황을 염두하는 것이 중요하므로, Big-O 표기법을 사용한다. 자세한 정리는 여기를 참고하자! A. 선형 탐색 (Linear Search Algorithm) 냅다 처음부터 끝까지 하나씩 둘러보.. 더보기