220 likes | 486 Views
컴퓨터와 프로그램. 2004 년 9 월 23 일 KAIST 전산학과 한 환 수. 오늘 이야기. 컴퓨터와 프로그래밍 언어 ( 초기의 역사 ) 프로그래밍 언어와 컴퓨터 구조의 발전 미래의 컴퓨터와 프로그램 ?. 첫 프로그래밍 언어와 가상의 기계. GW-BASIC 100 가지 예제 Apple II. BASIC. BASIC B eginner’s A ll-purpose S ymbolic I nstruction C ode 1960s invented at Dartmouth College
E N D
컴퓨터와 프로그램 2004년 9월 23일 KAIST 전산학과 한 환 수
오늘 이야기 • 컴퓨터와 프로그래밍 언어 (초기의 역사) • 프로그래밍 언어와 컴퓨터 구조의 발전 • 미래의 컴퓨터와 프로그램?
첫 프로그래밍 언어와 가상의 기계 • GW-BASIC 100가지 예제 • Apple II
BASIC • BASIC • Beginner’s All-purpose Symbolic Instruction Code • 1960s invented at Dartmouth College • MITS altair kit (Intel 8080 processor) • MicroSoft BASIC interpreter (Paul Allen, Bill Gates) • 5 weeks to complete for MITS altair
Apple II • Apple ][ • 1977년, Steve Wozniak, Steve Jobs • Motorola 6502 processor (8-bit, 1MHz) • CP/M or DOS • Paper tape / FSKcassette tape
CP/M 과 MS-DOS • CP/M (Control Program/Microcomputer) • Dr. Gary Kildall (Digital Research Institute) • 1973년, Intel 8008 with 8” floppy disk • 1976년 Rewrote with BIOS for different H/W • For IMSAI microcomputer (Intel 8080) • MS-DOS (Disk Operating System) • IBM과 DRI 협상 결렬 :( • MS proposed DOS/BASIC deal on favorable term for IBM • Modified QDOS from Seattle Computer Products • Copying CP/M system calls, program structures, … • CP/M-86 @ $240 vs. MS-DOS @ $60
Alto, LISA, GEM과 Windows • Xerox Alto • 1978년, First GUI • Window, Icon, Mouse, Pointer • 초고가로 실패- $40,000 • Apple LISA (Macintosh 초기모델) • 1981년, Steve Jobs • 역시 고가- $10,000 • DRI GEM (Graphical Environment Manager) • 1983년 Comdex, First GUI for PC • Virtually the same look and feel with Macintosh • Dropped due to Apple’s threat to sue • MS Windows v1.0 • 1985년Comdex • Different look and feel from Macintosh
Killer Apps - WordStar • WordStar • 1978년, Rob Barnaby (MicroPro International) 개발 • Written all in assembly language, running on CP/M • More illegal copies than originals • 1984년, $70 million sales, largest software company in USA • Competition from WordPerfect, MS Word
Killer Apps - VisiCalc • VisiCalc • 1979년, Dan Bricklin & Bob Frankston 개발 • 첫해 1 million copies @ $100, running onApple II • Lotus 1-2-3로 이어짐 • Quatro Pro (Borland), Excel (MS)
Shugart Technology • Shugart Technology • 1979년 Alan Shugart, Finis Conner 설립 • Seagate Technology로 개명 • 1980년, first Hard Disk (5~10MB) • Designed new interface SASI • NCR later modified to SCSI
IBM PC • IBM PC (1980) • Intel 8088 (16-bit, 4.77MHz) • 64K ROM, 64K RAM • PC-DOS (MS-DOS) • Built-in BASIC interpreter • IBM PC XT (1983년) : 64K~640K RAM • IBM PC AT (1984년) : Intel 80286 (6MHz), 512K~3M RAM,
프로그래밍 언어의 족보 1950s 1960s 1970s 1980s 1990s 2000s ? SQL SQL/92 SML SML 97 ML Haskell LISP CLisp Scheme CLOS Fortran I Fortran IV Fortran 77 Fortran 90 HPF COBOL PL/1 Modula-2 Modula-3 ALGOL58/60 Pascal Ada Ada95 ALGOL 68 VHDL VHDL 93 Verilog XL Verilog HDL BASIC C# CPL B C C++ Java SIMULA Smalltalk imperative object-oriented functional logic hardware description w/ time delay Prolog
세대별 언어의 변천 • 1세대 언어 (50년대 ~ 60년대 초) • Fortran (과학계산), COBOL (사무용) • 간단한control structure, 정적 메모리 관리 • 2세대 언어 (60년대) • Algol-60, PL/1, Basic • 블록 구조의control structure, 동적 메모리 관리 • 3세대 언어 (70년대 초) • Algol-68, Pascal, Simula, C • User-defined 자료 타입 • Simple language features • 4세대 언어 (70년대) • Ada, Modula-2 • Data abstraction, Information hiding
현재 널리 쓰이는 프로그래밍 언어 • C/C++ • UNIX and system software written in C • C++ added strong type, object-oriented features • Most popular language • Java • Write once, run everywhere • Object-oriented features • Memory-leakage free programming • Many business applications based on J2EE • Perl • Script language • Powerful string match and manipulations • Good at handling multiple programs in sequence
Microprocessors for PC’s • Intel processors dominate • 8086 (1978년) – 16bit processing, 16bit bus • 8088 (1979년) – 16bit processing, 8bit bus • IBM PC에서 채택 • 80286 (1982년) – 8086 개량판, • Protected mode addressing enables “virtual memory” • 6MHz에서 시작, 20MHz에서 작동하도록 발전 • 80386 (1988년) – 32bit processing, 32bit bus • 33MHz에서까지 작동 • Able to run UNIX with “flat addressing” • Linux/gcc doesn’t use any instruction introduced later • 80486 (1991년) – 80386 + math coprocessor (80387) • 120MHz에서까지 작동 • 5 stage pipeline, cache
Pentium • Pentium (1993년) – P5 • Superscalar (integer unit, FP unit), dual pipeline • trademark protection • PentiumPro (1995년) – P6 • 118bit uOP로 변환, Out-of-order execution • L2 cache • Pentium/MMX (1997년) • SIMD (64-bit vector – 1,2,4 byte integer) • Pentium II (1997년) • Merged MMX line on to PentiumPro • Pentium III (1999년) • Streaming SIMD (128-bit vector, handle float) • 10 stage pipeline • Pentium 4 (2001년) • SSE2 (128-bit vector, handle double) • 20 stage pipeline
x86 Clones • Advanced Micro Devices (AMD) • Historically, AMD has followed just behind Intel • A little bit slower, a lot cheaper • Recently, close competitors to Intel • Developing own extension to 64 bits • Athlon 64 FX, Opteron • Transmeta • Recent start-up (Employer of Linus Torvalds) • Radically different approach • Translates x86 code into VLIW code • High degree of parallelism • Shooting for low-power market
New Species: IA64 • Itanium (2001년) • Extends to IA64, a 64-bit architecture • Radically designed for high performance • VLIW/EPIC instruction-set architecture • Will be able to run existing IA32 programs • On-board “x86 engine” • Joint project with HP starting early 1990’s • Itanium 2 (2002년) • More functional units (4 INT units, 2 FP units, 1 branch unit) • Bigger on-chip cache (3~6MB) • Big performance boost
Moore’s Law • Gordon Moore (co-founder of Intel) • 2X density every 18 month 4004 - 1971 - 2300 Transistors - 10 um process - 12 mm2 - 108 kHz Pentium 4 - 2002 (31 yrs) - 55M (24K X) - 0.13um (1/77K X) - 142 mm2 (12 X) - 2.8 GHz (26K X) Itanium 2 - 2002 (31 yrs) - 220M (96K X) - 0.18um (1/55K X) - 421 mm2 (35 X) - 1 GHz (9K X)
미래의 컴퓨터 • 미래의 컴퓨터는 어떤 모양일까? • Ubiquitous computing – embedded processors all around • Quantumn computer? • Biological computer? • Robot? • 미래의 프로그램은? • 전문 프로그래머? • End-User Program? • Should be EASIER than now! • Natural way of Programming • and Debugging