프로그래밍 뭔가를 해내는 방법을 기술하기 뭔가를 정의하기, 와는 다르다 “해내는” = “계산하는” 루트2를 찾는 방법

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

2012 년 봄학기 강원대학교 컴퓨터과학전공 문양세 이산수학 (Discrete Mathematics)  중첩된 한정기호 (Nested Quantifiers)
컴퓨터와 인터넷.
팀 구성 : 조재민 (팀장), 고광춘, 유기민, 김대진, 이재호 발표 일자:
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
Database Summarization Using Fuzzy ISA Hierarchies
Chapter 7 ARP and RARP.
3주 강의 Lexical Elements, Operators, and the C System
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
4장 구문(Syntax).
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
REINFORCEMENT LEARNING
Delphi 2009의 언어 개선 박지훈.임프 2018년 11월 16일 금요일
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
제7장 제어구조 I – 식과 문장.
프로그래밍언어론 2nd edition Tucker and Noonan
Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
제 5장. Context-Free Languages
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
재귀 혹은 귀납 Recursive or Inductive Definition 집합을 정의하는 방법
C++ Programming: Sample Programs
컴퓨터과학 전공탐색 배상원.
Chapter 2. Finite Automata Exercises
제2장 데이터 및 수식.
5.1 데이터 타입 개요 5.2 사례 연구 5.3 타입 검사 Reading Chap 6
Chapter 3 Flow of Control
계수와 응용 (Counting and Its Applications)
공학컴퓨터프로그래밍 Python 염익준 교수.
소프트웨어 오류 자동 검증 기술.
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
Chap 6.Assembler 유건우.
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터 및 수식.
프로그램 식 조합 방법 <expr> ::= <constant> | <name>
팀명 : Fighting 팀원 : 신현상 최찬수
adopted from KNK C Programming : A Modern Approach
ER-Win 4.0 Database Modeling Ⅰ. Logical Design
‘Chess’를 읽고 컴퓨터공학부 배상수.
Introduction to Programming Language
[INA470] Java Programming Youn-Hee Han
프로그래밍언어론 2nd edition Tucker and Noonan
제 1 장. 자료구조와 알고리즘.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Chapter 4 변수 및 바인딩.
6.4 타입 검사 (Type Checking).
Signature, Strong Typing
Signature, Strong Typing
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
이산수학(Discrete Mathematics)
Signature, Strong Typing
Scheme ML Review & Preview 재귀와 반복(recursion and iteration)
Analysis and Testing of Programs with Exception-Handling Constructs
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
Chapter 08 조건문.
1.예수 거룩한 주 예수 생명의 11.예수 권능의 주 예수 19.그 누구도 그 누구도 21.It's all about you.
-아/어 드릴까요? 문 열어 드릴까요? 네, 감사합니다. Sogang Korean 2A UNIT 7 “-아/어 드릴까요?”
이산수학(Discrete Mathematics) 수열과 합 (Sequences and Summations)
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
SNU 컴퓨터의 기초 월 14:00-16:00 43동101호 ropas. snu. ac
바꾸기 mutation: 값이 아니라 물건으로 생각하기
Instruction to Computer
2019. 학생인문독서연구회 READ TOGETHER 책모임 안내 모임 구성 및 신청서 작성 후 제출!!! * 제출일
Traditional Methods – Part 1
Presentation transcript:

프로그래밍 뭔가를 해내는 방법을 기술하기 뭔가를 정의하기, 와는 다르다 “해내는” = “계산하는” 루트2를 찾는 방법 자장면을 만드는 방법 전화를 거는 방법 결혼을 하는 방법 뭔가를 정의하기, 와는 다르다 루트2는 제곱하면 2가 되는 수 자장면은 가장 싸고 맛있는 중국음식 전화걸기는 소리와 영상을 주고받고자 작업들어가는 것 결혼은 남자와 여자가 후손을 잘 만들어내기위한 계약

컴퓨터 프로그래밍의 어려움 프로그램은 규모와 복잡도가 점점 커짐 프로그램은 자동으로 실행됨 소프트웨어는 하드웨어가 더 좋아지는 속도보다 훨씬 빨리 더 복잡해지고 커진다 프로그램은 자동으로 실행됨 기계는 우리가 바라는 바를 실행하지 않는다 기계는 프로그램에 써 있는 것을 실행할 뿐이다

프로그래밍 시스템 기술의 대응 프로그램은 규모와 복잡도가 점점 커짐 프로그램이 자동으로 실행됨 프로그래밍을 점점 더 상위에서 하도록하는 도구 제공: 프로그래밍 언어 시스템: bits, assembly, C, Java, C#, Scheme, ML, etc. 계산의 복잡한 내용을 쉽게 관리하는 도구 제공: 프로그래밍 언어 시스템: C, Java, ML, Scheme, C#, etc. 프로그램이 자동으로 실행됨 프로그램의 오류를 자동으로 검증하는 도구 제공 1세대(문법검증): all languages 2세대(타입검증): ML, Java 3세대 …: new frontiers 목표 = 그 대응의 개념/구조/방법/미래기술등을 실습을 통해서 익히기

이제 시작해 봅시다

프로그램을 구성하는 데 필요한 요소 기본원소들 primitives 조합하는 방법들 means of combination voltages, resistors, capacitors, inductors, … 0, 1, AND gates, OR gates, NOT gates, … integers, strings, booleans, +, -, =, ^, … 조합하는 방법들 means of combination rules about wiring together in an electronic circuit rules about connecting together in a Boolean circuit rules about composing together in a compound 속내용을 감추는 방법들 means of abstraction black boxes: amplifier, receiver, transmitter, … black boxes: XOR, MUX, … black boxes: min, max, average, marry … pair, list, tree, set, vehicle, fire, … 실행과정의 이해 electronic laws about V, I, R, C truth tables of Bollean gates evaluation rules of programs

Programming Elements 기본원소들 primitives 조합하는 방법들 means of combination 속내용을 감추는 방법들 means of abstraction 프로그램 실행과정의 이해 rule of evaluation

Scheme Basics: expressions, values, types an expression computes a value, which is returned when the expression is evaluated every value has a type now on in Scheme

Programming Elements: primitives type elements built-in operators numbers 0, -1, 10, 1.2, 2.3e4 +, -, /, *, =, <, >, <=, >= strings “snow”, “this is @” stringlength, string=? booleans #t, #f and, or, not

Programming Elements: primitives primitives are self-evaluating exprs 1 evaluates to number 1 #t evaluates to boolean #t “a” evaluates to string “a” + evaluates to number-addition operator + / evaluates to number-division operator / primitives are also called “constants”

Programming Elements: combinations compound expressions open paranthesis, expressions, close paranthesis the expression evaluates the sub-expressions then apply the value of the 1st-subexpr to the values of argument exprs the 1st-subexpr must evaluate to a procedure (+ 1 2)

Programming Elements: combinations can use nested combinations use the combination rule recursively (+ (* 1 2) 3) (* (+ 1 2) (- 1 2))

Programming Elements: abstractions (naming) (define pi 3.14) name pi now means value 3.14 such name-value pairs are remembered by the computer in a table called “environment” can use pi for 3.14 thereafter (define pi 3.14) (* pi 10)

Programming Elements: abstractions (naming) (define <name> <expr>) evaluates the <expr> and its return-value is named <name>. (define pi 3.14) (define x (+ (* pi 10) 0.1)) (= (+ x x) (* 2 x))

Scheme Basics: rule of evaluation if primitives, return value if name, return its associated value in environment if special form, do something special if compound expr, then evaluate all the sub-expressions apply the operator value to the values of the operands and return the result

Read-Eval-Print Read Compile; Evaluate Print (* 2 (+ 3 4)) visible world Read internal representation of expr execution world Compile; Evaluate value of expr Print 14 visible world

The Two Worlds visible world syntax 12 12 pi 3.14 execution world printed representation of value visible world syntax 12 expr 12 expr pi 3.14 eval self-rule print print eval name-rule value 3.14 value 12 execution world semantics