반응형

예제 3

06. 조건문과 반복문

파이썬에서는 공백이 정말 중요하다. 다른 언어에서는 탭을 하던 스페이스를 누르던 빌드에 아무 문제가 없었지만, 파이썬에서는 공백 문자인만큼 어떻게 하느냐에 따라 빌드가 실패할 수 있다. 따라서 들여쓰기에는 탭보단 공백4개를 입력하는게 일반적이다. 조건문 혹은 반복문에서 공백에 의한 에러를 자주 만날 수 있으니 주의하자. if문 >>> happy = True >>> sad = False >>> if happy == sad: print("happy and sad") else: print("happy") print("sad") happy sad 조건이 많다면 elif를 사용할 수 있다. if score >= 90: print('A학점') elif score >= 80: print('B학점') elif scor..

09. stack frame, register saving convention

컴파일을 하면 스택에 코드가 쌓인다는 것은 우리가 다 아는 사실이다. 그렇다면 스택의 내부는 어떻게 생겼을까? 이 질문에 대한 해답을 얻기 전에 procedure의 data flow와 메커니즘 3가지에 대해 이해할 필요가 있다. procedure의 data flow는 저장되는 argument가 어디에 어떤 식으로 저장되는지를 말한다. procedure는 레지스터에 총 6개의 argument까지 저장할 수 있다. (저장 순서: %rdi -> %rsi -> %rdx -> %rcx -> %r8 -> %r9) 그리고 별도의 return 값을 저장하는 %rax를 제외하고 나머지 argument는 스택에 저장된다. 즉 인자값이 6개를 넘어가면 7번째 인자부터는 스택에 저장된다는 의미이다. procedure의 메커니..

06. 관계대수의 확장(세미 join, 외부 join, 외부합집합)과 집계연산

관계대수는 join과 합집합에 대해 확장이 가능한데 tistory에서는 관련 기호를 제공하지 않아 이미지로 대체하겠다. 역시 이론보단 실전이니 각 연산에 대한 예시를 하나씩 들어보겠다. 세미 join에 대한 예제다. relation R relation S A B C 구분칸 B C D a1 b1 c1 b1 c1 d1 a2 b1 c1 b1 c1 d2 a3 b1 c2 b2 c3 d3 a4 b2 c3 relation R과 S를 세미 join 하기 위해 먼저 relation S에 대해서 R과 S에 모두 속한 부분만 뽑아 새로운 relation을 만든다. 두 relation에 모두 속할 수 있는 값들은 무조건 attribute B,C에 해당하니까 열을 2개로 추리고 시작하면 된다. B C b1 c1 b2 c3 새롭..

반응형