본문 바로가기
IT관련/메모

컴퓨터 언어에 관한 몇가지 정보

by XoX 2020. 4. 15.
728x90

 

 

 

개인적인 메모를 위해 작성된 글이므로 가벼운 참고용으로 봐주세요.

 

■ 자연어 & 기계어

자연어 : 인간이 사용하는 언어
기계어 : 컴퓨터에 명령을 내리기 위해 쓰는 언어. '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)로 바꾸는 데 사용.

 

 

 

728x90
반응형

댓글