컴퓨터개요
1 - 3 프로그래밍 언어 종류
목차
- 프로그래밍 언어
- C, C++, Java, Python
- 컴파일러
프로그래밍 언어의 필요성
- 사람과 컴퓨터가 의사소통을 하기 위해 만든 언어
- 컴퓨터는 0과 1밖에 모르는 기계어만 사용하니까. 그래서 문자를 사용하는 사람과 의사소통을 하기 위해서는 중간에 통역을 할 수 있는 그런 공통언어(프로그래밍언어)가 필요한 것.
- 사람이 컴퓨터에게 지시할 명령어를 기술하기 위해 만들어진 언어
프로그래밍 언어의 종류
-
저급언어(low-level language) : 기계어, 어셈블리어
- 컴퓨터가 사용하는 기계어..바이너리로 되어있는 것 기계어라고 한다.
- 이 기계어와 매칭하여 기계어 위에서 기호, 신호처럼 기호화해서 만들어진 언어를 어셈블리어라고 한다. 이는 사람이 처리하기 어려운 것이 있는 저급언어에 속한다.
-
고급언어(hight-level language) : C, C++, Java, Python
- 사람의 용어.. 즉 영어와 같이 보기 편한 형태로 되어있는 프로그래밍언어를 말한다.

-
컴파일러 : C, C++처럼 고급언어로 작성된 것을 기계어로 번역하는 프로그램을 말함. 비쥬얼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++은 객체지향프로그래밍(OOP Object-Oriented-Programming)을 지원하기 위해 C언어가 가지는 장점을 그대로 계씅하면서 객체의 상속성(Inheritance) 등의 개념을 추가한 효과적인 언어
Java(1992)
- 자바(JAVA)의 시초는 1992년 미국의 SUN사에서 가전 제품들을 제어하기 위한 언어에서부터 비롯됨
- 이는 C++과 달리 객체 C를 기반으로 하는 것이 아니라 객체지향개념을 강화하여 객체지향프로그래밍 언어라며 강조하여 만들어진 언어이다.
- 분산 네트워크상에서의 프로그래밍이 용이.
python(1991)
- Guido van Rossum에 의해 발표
- 인공지능의 발전과 함께 많이 확산되었다.
- 플랫폼 독립적
- 인터프리터 언어. 인터프리터는 컴파일러가 프로그램의 소스코드를 처음부터 끝까지 다 한번에 기계어로 바꾸는 방식을 말하는 방면, 인터프리터는 한줄 한줄씩 읽어서 기계어로 번역하는 특징을 가진다.
- 동적 타이핑 언어. 앞의 C, C++는 타입을 정해서 변수를 선언하는 과정이 필요했던 방면, 파이썬은 변수에 집어넣는 값에 따라서 타입을 동적으로 정해서 저장해준다.
- AI 프로그래밍을 위한 많은 라이브러리 제공.
- 하지만 이 파이썬은 C언어로 개발되었다. C는 모든 언어의 기초에 있다고 함.
프로그래밍 언어가 필요한 이유
- 사람과 컴퓨터가 상호작용 하기 위해 중간에 프로그래밍 랭귀지가 필요하다.

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

스크래치
- 프로그래밍 교육용 언어
- 블럭을 갖다 붙이는 형태로 코딩이 가능하다.

엔트리
- 국내에서 개발한 SW 교육용 프로그래밍 언어
- 스크래치와는 다르다. 국내의 소프트웨어 교육 프로그램을 위해 좀더 자세하고 재미있는 콘텐츠를 재공하고 있다.
요약
- 프로그래밍 언어의 특징
- C, C++, Java, Python의 특징을 연도별로 살펴봄
- 스크래치, 엔트리처럼 쉽게 접근 가능한 웹상의 프로그래밍 플랫폼 소개
'컴퓨터공학입문' 카테고리의 다른 글
2 - 2 변수와 상수 (0) | 2019.08.25 |
---|---|
2 - 1 C언어 구조 (0) | 2019.08.25 |
1 - 4 프로그래밍 개발 환경 (0) | 2019.08.25 |
1 - 2 컴퓨터개요_컴퓨터와 자료표현 (0) | 2019.08.23 |
1 - 1 컴퓨터개요_문제해결 (0) | 2019.08.22 |
컴퓨터개요
1 - 3 프로그래밍 언어 종류
목차
- 프로그래밍 언어
- C, C++, Java, Python
- 컴파일러
프로그래밍 언어의 필요성
- 사람과 컴퓨터가 의사소통을 하기 위해 만든 언어
- 컴퓨터는 0과 1밖에 모르는 기계어만 사용하니까. 그래서 문자를 사용하는 사람과 의사소통을 하기 위해서는 중간에 통역을 할 수 있는 그런 공통언어(프로그래밍언어)가 필요한 것.
- 사람이 컴퓨터에게 지시할 명령어를 기술하기 위해 만들어진 언어
프로그래밍 언어의 종류
-
저급언어(low-level language) : 기계어, 어셈블리어
- 컴퓨터가 사용하는 기계어..바이너리로 되어있는 것 기계어라고 한다.
- 이 기계어와 매칭하여 기계어 위에서 기호, 신호처럼 기호화해서 만들어진 언어를 어셈블리어라고 한다. 이는 사람이 처리하기 어려운 것이 있는 저급언어에 속한다.
-
고급언어(hight-level language) : C, C++, Java, Python
- 사람의 용어.. 즉 영어와 같이 보기 편한 형태로 되어있는 프로그래밍언어를 말한다.

-
컴파일러 : C, C++처럼 고급언어로 작성된 것을 기계어로 번역하는 프로그램을 말함. 비쥬얼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++은 객체지향프로그래밍(OOP Object-Oriented-Programming)을 지원하기 위해 C언어가 가지는 장점을 그대로 계씅하면서 객체의 상속성(Inheritance) 등의 개념을 추가한 효과적인 언어
Java(1992)
- 자바(JAVA)의 시초는 1992년 미국의 SUN사에서 가전 제품들을 제어하기 위한 언어에서부터 비롯됨
- 이는 C++과 달리 객체 C를 기반으로 하는 것이 아니라 객체지향개념을 강화하여 객체지향프로그래밍 언어라며 강조하여 만들어진 언어이다.
- 분산 네트워크상에서의 프로그래밍이 용이.
python(1991)
- Guido van Rossum에 의해 발표
- 인공지능의 발전과 함께 많이 확산되었다.
- 플랫폼 독립적
- 인터프리터 언어. 인터프리터는 컴파일러가 프로그램의 소스코드를 처음부터 끝까지 다 한번에 기계어로 바꾸는 방식을 말하는 방면, 인터프리터는 한줄 한줄씩 읽어서 기계어로 번역하는 특징을 가진다.
- 동적 타이핑 언어. 앞의 C, C++는 타입을 정해서 변수를 선언하는 과정이 필요했던 방면, 파이썬은 변수에 집어넣는 값에 따라서 타입을 동적으로 정해서 저장해준다.
- AI 프로그래밍을 위한 많은 라이브러리 제공.
- 하지만 이 파이썬은 C언어로 개발되었다. C는 모든 언어의 기초에 있다고 함.
프로그래밍 언어가 필요한 이유
- 사람과 컴퓨터가 상호작용 하기 위해 중간에 프로그래밍 랭귀지가 필요하다.

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

스크래치
- 프로그래밍 교육용 언어
- 블럭을 갖다 붙이는 형태로 코딩이 가능하다.

엔트리
- 국내에서 개발한 SW 교육용 프로그래밍 언어
- 스크래치와는 다르다. 국내의 소프트웨어 교육 프로그램을 위해 좀더 자세하고 재미있는 콘텐츠를 재공하고 있다.
요약
- 프로그래밍 언어의 특징
- C, C++, Java, Python의 특징을 연도별로 살펴봄
- 스크래치, 엔트리처럼 쉽게 접근 가능한 웹상의 프로그래밍 플랫폼 소개
'컴퓨터공학입문' 카테고리의 다른 글
2 - 2 변수와 상수 (0) | 2019.08.25 |
---|---|
2 - 1 C언어 구조 (0) | 2019.08.25 |
1 - 4 프로그래밍 개발 환경 (0) | 2019.08.25 |
1 - 2 컴퓨터개요_컴퓨터와 자료표현 (0) | 2019.08.23 |
1 - 1 컴퓨터개요_문제해결 (0) | 2019.08.22 |