1 - 3 컴퓨터 개요_프로그래밍 언어 종류

728x90
반응형

프로그래밍 언어의 필요성

  • 사람과 컴퓨터가 의사소통을 하기 위해 만든 언어
    컴퓨터는 0과 1밖에 모르는 기계어만 사용함. 문자를 사용하는 사람과 의사소통을 하기 위해서 중간 통역 역할을 할 수 있는 공통언어(프로그래밍 언어)가 필요함.
  • 사람이 컴퓨터에게 지시할 명령어를 기술하기 위해 만들어진 언어

프로그래밍 언어의 종류

  • 저급언어(low-level language) : 기계어, 어셈블리어
    컴퓨터가 사용하는 기계어(binary)로 되어있음.
    이 기계어와 매칭하여 기계어 위에서 기호, 신호처럼 기호화해서 만들어진 언어를 어셈블리어라고 함.
    이는 사람이 처리하기 어려운 것이 있는 저급언어에 속함.
  • 고급언어(high-level language) : C, C++, Java, Python
    사람의 용어로 보기편한 형태로 되어있는 프로그래밍 언어를 뜻함.

 

  • 컴파일러 : C, C++처럼 고급언어로 작성된 것을 기계어로 번역하는 프로그램을 말함. Visual C++와 같은 번역을 해주는 프로그램이라 함.
  • 어셈블러 : 어셈블리어로 작성된 프로그램을 기계어로 번역해주는 것.
    어셈블리어도 기계어와 가깝지만 마찬가지로 번역과정을 거쳐야 기계어로 바뀌게 된다. 

 

 

유닉스의  운영체제 특징은 멀티유저를 지원한다. 이 유닉스가 C언어 전에 만들어졌는데 좀더 발전된 유닉스를 만들기 위해 C를 개발했다고 알려져있다. 

그리고 MS에서 DOS라는 텍스트 기반의 운영체제가 만들어졌다.

그리고 83년도에 C를 기반으로 하여 객체지향개념을 넣은 C++이 개발되었다. 

그리고 매킨도시 애플이 84년도에 개발된다. 맥은 DOS에서는 텍스트 기반에서 까만 화면에 명령어를 입력하는 환경이었는데 애플은 그래픽 유저 인터페이스를 지원하는 환경이었다.
그 이후 그래피컬유저인터페이스를 지원하는 윈도우가 생기며 91년도에 리눅스라는 운영체제가 만들어짐.

유닉스는 서버역할을 하면서 멀티유저를 지원하는 특징을 가지며 비싸고 다루기 어렵다.
반면 리눅스는 개인용 피시에서도 서버역할을 하면서 멀티유저를 지원할 수 있는 운영체제가 있으면 좋겠다는 생각에서 개발되었다.

그쯤 파이썬이 만들어짐.
95년에 네트워크와 인터넷이 계속 개발되면서 발전되는 시기이다.

자바는 분산환경에서 프로그래밍이 용이하도록 객체지향어로 개발되게 된다.

그 이후 모바일환경에서 안드로이드, ios라 하는 것들이 발전하면서 지금 우리가 살고 있는 컴퓨팅세상에 많은 기여를 하고 있다.

그리고 스크래치, 앱 인벤터, 엔드리가 나옴

 

 

C(1972) : 데니스 리치(Dennis Ritchie)

  • 유닉스(UNIX) 운영체제 작성을 위해 시스템 프로그래밍 언어로 설계된 언어
    C언어는 운영체제를 만들기 위해 만들어진 언어라서 하드웨어와 모든 문법적인 내용들을 가지고 있다. 
  • 컴파일러나 수많은 소프트웨어 도구(Tool)들도 C언어로 개발
  • 풍부한 연산자와 데이터 형(data type)을 갖고 있기 때문에 범용 프로그래밍 언어로서 널리 보급되었으며, 응용 소프트웨어의 개발에 널리 이용

C++(1983)

  • C언어 나온 이후 10년뒤에 C++나옴
  • C++은 객체지향 프로그래밍(OOP Object-Oriented Programming)을 지원하기 위해 C 언어가 가지는 장점을 그대로 계승하면서 객체의 상속성(inheritance)등의 개념을 추가한 효과적인 언어

Java(1992)

  • 자바(JAVA)의 시초는 1992년 미국의 SUN 사에서 가전 제품들을 제어하기 위한 언어에서부터 비롯됨
  • 객체지향 프로그래밍 언어
  • 분산 네트워크상에서의 프로그래밍이 용이

Python(1991)

  • Guido van Rossum에 의해 발표
  • 플랫폼 독립적
  • 인터프리터 언어
    컴파일러가 프로그램의 소스코드를 처음부터 끝까지 다 한번에 기계어로 바꾸는 방식
    인터프리터는 한줄 한줄씩 읽어서 기계어로 번역하는 특징을 가짐
  • 동적 타이핑 언어
    C, C++는 타입을 정해서 변수를 선언하는 과정이 필요했던 반면, 파이썬은 변수에 집어넣는 값에 따라서 타입을 동적으로 정해서 저장함.
  • AI 프로그램밍을 위한 많은 라이브러리 제공
  • 처음 C언어로 개발

프로그래밍 언어가 필요한 이유(Programming Language)

  • 파이썬은 간결하다. C, C++에 있는 프린트물을 출력하기 위한 소스코드들이 이미 파이썬 안에 내장되어있기 때문. 
  • 우리가 어떤 언어를 사용하든 원리를 알고 편한 것을 사용하는 것은 좋지만 그냥 편한 것을 보다가 원리를 뒤집어서 내가 스스로 뭔가를 만들고자 할대는 그 부분을 잘 알기 힘들 수 있다. 

 

스크래치

  • 프로그래밍 교육용 언어
  • 블럭을 갖다 붙이는 형태

 

 

엔트리

  • 국내에서 개발한 SW 교육용 프로그래밍 언어
  • 스크래치와는 다르다.
    국내의 소프트웨어 교육 프로그램을 위해 좀 더 자세하고 재미있는 콘텐츠를 제공하고 있음

 

요약

  • 프로그래밍 언어의 특징
  • C, C++, Java, Python의 특징 및 연도별로 살펴봄
  • 스크래치, 엔트리처럼 쉽게 접근 가능한 웹상의 프로그래밍 플랫폼 소개 
728x90
반응형

댓글