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
반응형
'AI > 머신러닝(ML)' 카테고리의 다른 글
2 - 2 프로그램 구조_변수와 상수 (1) | 2022.09.20 |
---|---|
2 - 1 프로그램 구조_C 프로그램 구조 (1) | 2022.09.20 |
1 - 4 컴퓨터 개요_프로그래밍 개발 환경 (0) | 2022.09.19 |
1 - 2 컴퓨터 개요_컴퓨터의 자료 표현 (0) | 2022.05.16 |
1 - 1 컴퓨터 개요_문제 해결(problem solving) (1) | 2022.05.16 |
댓글