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
    반응형

    댓글