일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 외부접속
- WPF
- 자격증
- 오답풀이
- plan
- php
- 개발
- Developer
- 프로그래밍 언어론
- windows
- knockon
- html
- git
- cording
- 프로그래밍언어론
- 방화벽
- CodeIgniter
- 홈서버
- study
- bootcamp
- C
- Java
- 개인서버
- 매크로
- Mac
- 220821
- 정보처리기능사
- React
- 개발공부
- CSS
- Today
- Total
bunta의 보조기억장치
[프로그래밍 언어론] 2-1 프로그래밍 언어의 발전 본문
컴퓨터 시스템의 발전
아이디어 시대 → 계산 자동화를 위한 상상 속의 기계 설계
전자식 컴퓨터 → 전자 신호를 통한 계산 기계 1940~50년대 최초의 전자식 컴퓨터(에니악, 콜로서스)
기능을 수정하기 위해서는 컴퓨터 자체를 손봐야 함(프로그램 개념 X)
프로그램 저장 방식의 컴퓨터 → 프로그램과 처리기를 분리(에드박)
관리자(operator)가 프로그램이 짜여진 펀치 카드 같은 것을 계속 컴퓨터에 입력하여 작동시킴
운영체제의 발전
일괄처리 운영체제
→ 관리자(operator)를 대신할 프로그램 등장(자동화)
But 입력된 순서대로만 처리 가능
시분할 운영체제
→ 한 컴퓨터(서버)를 여러 사람이 사용
cpu가 각 사용자가 명령한 일을 일정한 간격을 두고 돌아가면서 처리하여 한 컴퓨터를 여러 사람이 동시에 사용하는 것처럼 보이게 작동
DOS
→ IBM, Apple 등 개인용 컴퓨터(personal computer, PC) 등장
PC 환경 운영체제 발전
→ GUI(Graphical User Interface) 운영체제와 Linux의 발전
서버에서 사용했던 기능들을 PC에서도 사용할 수 있는 운영체제가 발전함
초기 프로그래밍 언어(1950년대)
Fortran: 수식과 문장, 제어문의 등장
→ IBM의 존 배커스(John Backus)에 의해 개발
→ 과학계산용 언어(Fomula Translation)
Algol: 구조화 프로그래밍의 발전
→ 본래 이름은 IAL(International Algebraic Language)
→ 국제 위원회 ACM-GAMM을 통해 설계된 언어
→ 알고리즘을 기술 가능한 언어
LISP: 초기 함수형 언어
→ MIT의 존 매카시(John McCarthy)가 설계
→ 최초의 함수형 언어
→ 초기 인공지능 분야에서 많이 사용됨
프로그래밍 언어의 발전(1960년대)
Cobol: 레코드 타입의 소개
→ 미 해군에서 그레이스 호퍼(Grace Hopper)가 이끄는 팀에 의해 개발
→ 사무용 언어
PL/I: 복잡한 언어
→ 여러 언어를 합쳐 보았으나 결과적으로 너무 복잡해 사용이 어려움
BASIC: 교육용 언어
→ Beginner's All-purpose Symbolic Instruction Code
→ 줄단위 처리
Simula: 객체지향
→ 시뮬레이션 언어
Pascal: 차세대 교육용 언어
→ 구조화 프로그래밍(BASIC언어와 차이점)
C: 시스템 프로그래밍
* 시스템 프로그래밍: 하드웨어와 사용자 중간에서 연결을 목적으로 한 프로그램
→ Unix 개발용 언어
→ Objective-C, C++, Java, C# 등 다양한 언어에 지대한 영향을 끼침
Prolog: 선언적 논리 언어
→ 최초의 논리 언어
Smalltalk: 객체지향 언어의 발전
→ 최초로 GUI, 마우스 등을 도입한 언어
프로그래밍 언어의 단순화(1970년대)
Ada: 안전성을 위주로 개발
→ 미 국방성(DoD) RHDAH
→ 매우 복잡한 언어로 1983년에 첫 컴파일러 등장(안전성을 높이기 위해 1970년대부터 개발을 시작하여 약 10년만에 공개)
ML: 타입 시스템을 갖춘 현대 프로그래밍 언어
→ 강력한 정적 타입 검사, 타입 추론, 패턴 검사, 예외 처리 등
→ 실행 시간이 아닌 사전에 프로그램을 작성한 뒤 타입 오류 체크
Scheme: 간결한 LISP
→ MIT 학생들의 기초 프로그래밍 언어
현대 프로그래밍 언어 등장(1980년대)
Common LISP: 방대한 LISP의 통합
→ 함수형 언어 패러다임과 객체지향 패러다임을 동시에 지원
Objective-C: C의 탈을 쓴 Smalltalk
→ C를 기초로 한 객체지향 언어의 신호탄
→ Apple의 애플리케이션 작성 언어로 발전
C++: 객체지향으로 변신한 C
→ 클래스 개념을 C에 도입
Perl: 문자열 처리를 위한 언어
→ 정규식을 바탕으로 한 강력한 패턴 매칭 기능 포함
프로그래밍 언어의 대중화(1990년대 이후)
Java: 단순한 객체지향 언어
→ 원래 목적은 임베디드 컴퓨팅 분야
→ 웹 브라우저에 탑재되면서 인기가 높아짐
→ JVM(Java Virtual Machine)을 통해 어디서나 Java 프로그램 동작 가능
JavaScript: 웹 프로그래밍 언어
→ Netscape에서 개발
→ 스크립트 형태로 만들어져서 브라우저에서 동작하기 수월함
→ Elm, TypeScript 등 다양한 변종 언어로 발전
Python: 빠른 프로토타이핑 언어
→ 스크립트 언어
→ 동적 언어를 추구(미리 자료형을 지정하지 않고 실행 시 필요에 따라 지정)
→ 다중 패러다임 언어(명령형, 객체지향 등 모두 포함)
Haskell: 순수 함수형 언어
→ 모나드(monad)가 탑재되면서 점차 인기가 높아짐
→ Scala에 영향을 줌
한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
'Study > 필기' 카테고리의 다른 글
[프로그래밍 언어론] 3-3 여러 패러다임의 프로그램 예 (0) | 2022.10.05 |
---|---|
[프로그래밍 언어론] 3-2 프로그래밍 언어의 패러다임 (0) | 2022.10.05 |
[프로그래밍 언어론] 3-1 프로그래밍 패러다임 (0) | 2022.10.04 |
[프로그래밍 언어론] 2-3 프로그래밍 언어의 평가 기준 (0) | 2022.10.04 |
[프로그래밍 언어론] 2-2 프로그램 동작 원리 (0) | 2022.10.04 |