Microsoft PowerPoint - a.pptx

Similar documents
2,. 1 1, ,....?. 1920, (International Fixed Calendar) (World Calender). 1 13, , ( ).., (

Microsoft PowerPoint - PL_03-04.pptx

1

프입2-강의노트-C++배경

Microsoft PowerPoint - chap01-C언어개요.pptx


C 언어와 프로그래밍 개요

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

<C6F7C6AEB6F5B1B3C0E72E687770>

초보자를 위한 C++

PowerPoint Template

PowerPoint Template

프로그래밍 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( 1

형식 언어

PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<4D F736F F F696E74202D20C7C1B7CEB1D7B7A1B9D6BEF0BEEEB7D05FC3E2BCAEBCF6BEF7>

PowerPoint 프레젠테이션

3차시.ppt

제4장 기본 의미구조 (Basic Semantics)

PowerPoint Presentation

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

레이아웃 1

인류의역사를공부하면현재와미래의우리삶을더잘이해할수있듯이, 프로그래밍언어 설계의역사를살펴보면프로그래밍언어에대해서더잘이해할수있을것이다 년대 - 폰노이만머신, 어셈블리언어, Fortran 진공관컴퓨터의출현 : 튜링머신Turing machine을진공관을이용하여현실화함

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

쉽게 풀어쓴 C 프로그래밍

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

초보자를 위한 자바 2 21일 완성 - 최신개정판

JVM 메모리구조

2002년 2학기 자료구조

EA0015: 컴파일러

프로그래밍언어 컴퓨터정보과권용광 CONTENT 1. 컴퓨터언어와프로그래밍의개념 2. 프로그래밍과정과컴퓨터언어의계층 3. 프로그래밍언어의발달과정과분류 4. 프로그래밍코딩의실제예 컴퓨터언어와프로그래밍의개념 프로그래밍과정과컴퓨터언어의계층구조 프로그래밍언어

Design Issues

(Microsoft PowerPoint - \273\365 Microsoft Office PowerPoint \307\301\267\271\301\250\305\327\300\314\274\307.pptx)

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

ThisJava ..

PowerPoint Presentation

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

Chap 6: Graphs

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

Microsoft PowerPoint - C프로그래밍-chap00.ppt [호환 모드]

untitled

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

슬라이드 1

Microsoft PowerPoint - ch01.ppt

PowerPoint Presentation

Week1

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

C++ Programming

1

adfasdfasfdasfasfadf

자료형 크기 값의범위 접미문자 Byte형 1바이트 0~255까지 없음 Boolean형 2바이트 True, False 없음 Integer형 2바이트 ~ 32767까지 % Long형 4바이트 -2,147,483,648 ~ 2,147,483,648까지 & Sin

chap x: G입력

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

untitled

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

슬라이드 1

Microsoft PowerPoint 장강의노트.ppt

본책- 부속물

PowerPoint 프레젠테이션

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Introduction- 소개 Previous- 이전, Next Chapter- 다음장 JavaScript is the most popular scripting language in the world. It is the standard language used in w

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

C++ 기본문법 정리

제 1 강 희망의 땅, 알고리즘

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

1 처리능력 (Throughput) : 일정시간내에시스템이처리하는일의양 2 반환시간 (Turnaround time) : 시스템에작업을의뢰한시간부터처리가완료될때까지걸리는시간 3 사용가능도 (Availability) : 시스템을사용할필요가있을때즉시사용가능한정도 4 신뢰도

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

세계 비지니스 정보

PowerPoint 프레젠테이션

02 C h a p t e r Java

<C7C1B7CEB1D7B7A1B9D6BEF0BEEE2E687770>

Speculative Register Promotion Using Advanced Load Address Table (ALAT)

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 ±×to0.

Slide 1

[로플랫]표준상품소개서_(1.042)

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

9장.예외와 단정

CH05) 소프트웨어개요 컴퓨터일반 1- 소프트웨어개념및구분 1) 소프트웨어의개념 컴퓨터전체를작동시키거나사용자가컴퓨터를이용하여특정업무를처리할수있게개발된프로그램 2) 소프트웨어의구분 시스템소프트웨어 제어프로그램 감시프로그램 작업관리프로그램 데이터관리프로그램 처리프로그램

슬라이드 1

Microsoft PowerPoint - chap01.pptx

Microsoft PowerPoint - 15-MARS

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - ch0-warming-up-material_2013.ppt [호환 모드]

제 1 장 기본 개념

PowerPoint 프레젠테이션

2 장. 컴퓨터와경영정보시스템

Microsoft PowerPoint - CSharp-10-예외처리

Introduction to Computer Science

03.Agile.key

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

PowerPoint Presentation

Transcription:

Chapter 2 역사 1950 년대 : 첫번째프로그래밍언어 1960 년대 : 프로그래밍언어들의난리법석 1970 년대 : 단순성, 추상성, 프로그래밍언어론 1980 년대 : 객체지향프로그래밍 1990 년대 : 인터넷, API, 스크립트언어

수학그리고프로그램 프로그래밍언어 컴퓨터의진화의영향 수학표현의발전의영향 수학그리고프로그램 수학자들은어떻게하느냐보다는무엇이냐에더중점을둠 무엇 : 특성, 정리 어떻게 : 알고리즘, 프로시져, 프로그림 B.C.600 년그리스이전에는모든수학이프로그래밍이었음 Programming Languages 2

바빌론프로그램의예 아주오랜옛날, 연산이란게있었음 바빌론스타일표현 [Knuth 1972] 네모난저수지가있는데. 가로길이와높이는같다. 그저수지를만들려고판흙들이있는데. 이흙들의부피는 120 이다. 저수지의가로길이는 5 다. 저수지의세로길이는? // 너무평이하므로번역할필요없음 Add 1 to 5, getting 6. Divide 6 into 120, obtaining 20. Divide 5 into 20, obtaining the width, 4. This is the procedure. Programming Languages 3

바빌론프로그램의추가설명 기하학적인해결책을보이고있음 Area + Volume = T (120 in the example) Area = length width Volume = length width height height = length In code: = * + * * Solving for the width: = / ( + * ) = T / (1 + ) / Programming Languages 4

초기의역사 해석엔진 찰스배비지 (1830s-40s) 기계적컴퓨터 입출력방법 : 펀치카드 최초의프로그래머 ( 여자임 ) 어거스타에이다러브레이스백작부인 (Ada Augusta, Countess Lovelace) 시인바이런의딸 프로그래밍언어에서사용되는중요한개념인루프, 점프, IF 문과같은제어문, 서브루틴에관한개념고안 Programming Languages 5

1950 년대 기초적인프로그래밍언어 기계어코드 어셈블리어 : 심볼과니모닉은있으나여전히기계 종속적임 ( 중요 중요!) 선구자적인고수준언어들 임퍼러티브언어 포트란 (FORTRAN) 코볼 (COBOL) 알골 (Algol60) 함수언어 리스프 (LISP) APL Programming Languages 6

FORTRAN ( 중요!) FORmula TRANslation John Backus, IBM (1954~1957) 최초의고수준프로그래밍언어 목적코드의효율화가궁극적목적 특징들 배열 인덱스변수에의해루프제어 if 문에의한브랜치 (branch) 아직도쓰이고있음 (Fortran I, II, III, IV, Fortran66, Fortran77, Fortran90, Fortran95) Programming Languages 7

코볼 (COBOL) ( 중요!) Common Business-Oriented language 그레이스하퍼 (Grace Hopper), 미해군, 미국국방성 (1959~1960) 산업계에서는많이애용되었지만, 학계에서 는무시당해왔음 ( 장황한문법때문인데, 사 실그당시가장영어에가까운프로그래밍언어 ) 특징 레코드구조 데이터구조와실행블록의분리 picture 를이용한포맷팅 Programming Languages 8

Algol60 ALGOrithmic Language 국제위원회에의해만들어짐 (1958~1960) 알고리즘구현을위한언어 특징 구조화된문장 begin-end 블럭 변수의형 (type) 선언 재귀호출 스택기반실행환경 값기반호출 문법은 BNF (Backus-Naur Form) 에의해정의 Programming Languages 9

리스프 (LISP) ( 중요!) LISt Processor 존매카시 (John McCarthy), MIT (1958~1960) 특징 인공지능에서의심볼프로그래밍 하나의데이터구조, S 표현식 (S-expression) 쓰레기수집 (garbage collection) 재귀호출 (recursion) 리스프의방언들이여전히쓰이고있음 ( 예를들어, Scheme, Common Lisp) Programming Languages 10

APL A Programming Language K. Iverson, Harvard, late 1950s Transferred to IBM, early 1960s 특징 배열과매트릭스연산 초기의시분할시스템에서사용됨 (IBM 360) 단점 : 수학심볼을위해서특별한터미널이필요 Programming Languages 11

1960 년대 프로그래밍언어들이마구등장하기시작 (50 쪽그림 2.1) 특화된목적의프로그래밍언어들이등장 주목할만한언어들 PL/I: 범용언어의시조 Algol68: 직교적설계 (orthogonal design) 직교성 언어가문맥에따라다른의미를가지지않는것 직교성이안되는경우의예 C 에서의배열 다른특화된언어들 SNOBOL Simula67 ISWIM BASIC Programming Languages 12

PL/I IBM 360 시리즈를위한언어 (1963~1964) 다른모든프로그래밍언어를아우르기위한꿈으로시작된범용언어 실패함! 설계의목적 FORTRAN, COBOL, Algol60 의모든특성을망라 함 병행성 (concurrency) 과예외처리 (exception handling) 단점 언어번역기를만들기어렵다 배우기어렵고, 에러를내기쉽다 Programming Languages 13

Algol68 국제위원회 (1963~1968) 특징 완전히직교적인언어 Algol60 에새로운특징들이추가됨 단점 너무복잡함 : 거의읽을수없는난해한언어참조매뉴얼 실패! Programming Languages 14

SNOBOL StriNg Oriented symbolic Language D. Farber, R. Griswold, and I. Polonsky of Bell Labs (1962~3) 스트링을처리하는언어 강력한패턴매칭능력을가지고있음 Programming Languages 15

Simula67 Kristen Nygaard and Ole-Johan Dahl, Norwegian Computing Center (1965~7) 시뮬레이션에사용되는언어 객체지향언어에필수적인클래스 (class) 개념도입 Programming Languages 16

ISWIM If you See What I Mean Peter Landin (1966) 현대의함수언어의조상 (say Haskell, ML) 특징 느긋한계산법 (lazy evaluation) ( 중요!) 결과값이필요할때까지계산을미룸 1. 지연계산법 함수형언어에서많이사용됨 2. 최소계산법 오프사이드규칙 ( 중요!) 인덴테이션에의해변수의영역이결정됨 최근의경우이런대표적인언어는파이썬 (Python) 임 Programming Languages 17

BASIC ( 중요!) Beginners All-purpose Symbolic Instruction Code John Kemeny and Thomas Kurtz at Dartmouth College (1964) 시분할시스템을위한언어 나중에마이크로컴퓨터에서채택되었음 ANSI Standard minimal BASIC (1978) ANSI full Standard BASIC (1988) Programming Languages 18

1970 년대 단순함과추상화 언어의복잡함으로인해, PL/I 과 Algol68 가실패했었기때문임 주목할만한언어들 가장유명한 : Pascal, C ADT ( 추상데이터형 ) 연구 : CLU, Euclid, Mesa 규제되는 LISP: Scheme 다른것들 : ML (Milner, 1978~), FP (Backus, 1978), Prolog (Colmerauer 1972~1982) Programming Languages 19

파스칼 (Pascal) ( 중요!) Niklaus Wirth (1971) Algol68 의기본개념들만강조 작고, 단순하고, 효율적이고, 구조적인언어 프로그래밍을가르칠때교육용으로많이사용되었음 다음의중요한특성들이빠짐 분리컴파일 스트링다루기 확장가능한입출력기능 [Kernighan 1981, Why Pascal is Not My Favorite Programming Language ] 참고 Programming Languages 20

C ( 매우중요!) 벨연구소의데니스리치 (Dennis Ritchie) (1972) 형 (type systems) 체계를단순화함 단순한실행환경 ( 함수는 nesting 이안됨 ) 중간수준언어 : 기계에더가깝게다가간언어 운영체제프로그래밍에사용됨 (Unix) Programming Languages 21

1980 년대 객체지향 중요한언어들 Ada (John Ichbiah, ~1983) Modula-2 (Niklaus Wirth, 1982) Smalltalk (Alan Kay, ~1980) C++ (Bjarne Stroustrup, 1980~1998) Programming Languages 22

Ada (Ada83) John Ichbiah Team (~1980) 미국방성의프로젝트언어 특징 패키지 (package) 를통한추상데이터타입 (ADT) 지원 태스크 (task) 를통한병렬프로글래밍지원 매우크고복잡한언어 1980 년대의 PL/I 1983 년에국제표준으로채택되었음 Programming Languages 23

Modula-2 Niklaus Wirth (1982, revised in 1985 and 1988) 특징 모듈 (module): Ada 의패키지개념 코루틴 (coroutine): 제한적으로병행성지원 교육용언어파스칼을대체함 큰소프트웨어프로젝트에는거의사용되지않음 Programming Languages 24

Smalltalk (Smalltalk-80) ( 중요!) 제록스파크 (Xerox Corporation s Palo Alto Research Center) 의 Alan Kay, Dan Ingalls, et al. at (1972~80) 특징 Simula 언어의클래스 (class) 개념이더강화됨 GUI 윈도우와마우스를통한환상적인 환상적인프로그래밍환경 Mac OS Windows 단점 표시방법이일반적이지않음 효율적인구현이어려움 Programming Languages 25

C++ ( 중요!) 벨연구소의비야네스트롭스트룹 (Bjarne Stroustrup) C with classes 효율적인객체지향언어 대부분의플랫폼에서사용가능 1998 ISO 표준 C++ 제정 C++0x 2009 년도현재개발중인새로운표준 Programming Languages 26

1990 년대 : 이제기술이만개하였다 거대한프로그래밍라이브러리와 API 들 Java (James Gosling, 1995): 이미만들어진 API 들과함께등장한최초의언어 Ada 의라이브러리들도많아짐 (Ada95). 시스템프로그래밍분야도커짐 : 많은스크립 트언어들이도래함 (Perl, Tcl, Javascript, VBScript, Python) 함수언어들도많아짐 : ML (Milner, 1978~1988) Haskell (Hudak, Peyton-Jones, Wadler, 1989~1998) Programming Languages 27

과연미래는어떨까? C# (2000): 자바의자리를바꿀수있을까? 5~10 년뒤의자바는어떠할까? ( 대부분의웹기반이아닌프로그램들은여전히 C++ 나 C 로구현되어있음.) 새로운언어가등장할까? 프롤로그 (Prolog) 는어떻게될까? 미래를예측하는게가능하기나할까? Programming Languages 28

알아두면좋은언어들 C C++ Java C# C# Python Ruby Programming Languages 29