■ 자연어 & 기계어
자연어 : 인간이 사용하는 언어
기계어 : 컴퓨터에 명령을 내리기 위해 쓰는 언어. '0'과 '1'로 이루어져있다. 1세대 언어.
■ 컴퓨터의 어원
컴퓨터 = 계산기
'0'과 '1'로만 이루어진 기계어가 너무 어려워서 그것을 아는 사람이 희귀한 시절이 있었다.
그 시절에 기계어를 사용할 줄 아는 사람을 '컴퓨터'라고 불렀다.
■ 기계어 언어종류(탄생순서별)
1. 어셈블리 언어 <= 2세대 언어
기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어.
※ 컴퓨터 구조에 따라 사용하는 기계어가 다름. 즉 기계어에 대응되어 만들어지는 어셈블리어도 각각 다름.
※ 어셈블리 언어를 컴퓨터 언어로 바꿔주는 컴퓨터 언어 프로그램 = 어셈블러(assembler)
2-1. C언어 <=3 세대 언어
어셈블리보다 간결해진 언어
2-2. C++
'C언어'+'객체 지향 문법'
*관리의 핵심은 적절한 '모듈화=객체화' 이다.
C언어로 프로그램을 객체화하는게 불가능까지는 아니지만, 문법적으로 도움받을 수 있는 게 없습니다.
↑ 메모리 매니징 수동
↓ 메모리 매니징 자동
2-3. 자바, C#
'C++' 에서 '가비지컬렉터(메모리관리 자동 기능)' 를 합친 것.
※ 하드디스크(음식재료와 조리도구가 모두 널려있음) 용량이 아무리 커도
램(특정 레시피의 재료와 도구를 요리하는 선반에 올려둠)이 없으면 속도면에서 비효율적
가비지 컬렉터는 특정 레시피로 요리를 할 때 옆에서 재료와 도구를 정리해주는 보조역할이라고 보면 된다.
※ 회사 홈페이지를 만드는데, 회원관리와 게시판 기능이 없다 = 데이터 관리 기능이 필요없다.
3-1. 파이썬 <= 4세대 언어
3세대 언어보다 인간적 언어에 가깝게 고안된 언어.
3-2. PHP
C언어나 Perl로 복잡하게 웹사이트를 만들던 CGI를 대신해 간편하게 웹사이트를 작성하기 위해 개발된 언어.
3-3. 4세대 언어가 더 쉬운데 왜 아직 자바를 사용할까?
비유하자면, 중국을 여행할 때 중국어를 직접 할 줄 알면 중국을 세밀하게 즐길 수 있는 반면에
번역앱을 쓰면 소통하는 속도도 느려지고 중국을 세밀하게 맛보기 어려운 것과 같다.
<각 언어의 속도 비교>
숫자가 높을 수록 메모리 효율 좋음.
기계어: 150
어셈블리 언어: 150
C언어: 100
C++: 40
자바: 10
파이썬: 1
자바스크립트: 1
PHP: 1
■ 컴파일
소스코드를 컴파일하면 기계어가 된다.
※ 컴파일러(compiler): 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램. 컴파일러는 고급 프로그래밍 언어를 실행 프로그램으로 만들기 위해 저급 프로그래밍 언어(ex. 어셈블리 언어, object 코드, machine code)로 바꾸는 데 사용.
'IT관련 > 메모' 카테고리의 다른 글
[뉴렉처 정리노트] 톰캣 설치요약1 (0) | 2020.04.30 |
---|---|
[뉴렉처 정리노트] 웹 서버 프로그램과 Servlet의 관계 (0) | 2020.04.29 |
[뉴렉처 정리노트] 프로그램의 과거와 현재 (0) | 2020.04.29 |
[뉴렉처 정리노트] 자바웹프로그램과 함께 배우면 좋은 도구들 (0) | 2020.04.28 |
[뉴렉처 정리노트] 웹개발에 관한 기초정보 (0) | 2020.04.28 |
댓글