에몽이

subprogramming 본문

학교/웹디자인

subprogramming

ian_hodge 2016. 12. 10. 18:38
  • subprogramming의 기초
  1. 각 subprogramming은 하나의 입구가 있따.
  2. 섭 프로그램이 실행되는 동안은 caller가 중지된다
  3. 섭 프로그램이 종료되면 무언가를 return한다
  4. 기초
    1. subprogramming definition:인터페이스와 행동으로 되어있음
    2. formal parameter:섭 프로그램의 헤더에 써있는 더미들, default 값을 설정 할 수 
    3. actual parameter:호출되면 사용되는 실제 값, 구분은 position 으로 함/키워드로도 할 수 있음
  • model of parameter parssing
    • in mode: caller 가 calle에게 call값을 줌
    • out mode:clee가 caller에게 return 값을 줌
    • in out mode: 둘다 하는거


  • pass by value 
    • 실제 값과 값은 값이 새롭게 생성되어 전달(copy형태)
    • 추가 공간 필요, 
  • pass by result
    • callee의 결과 값만 전달
    • 만일 같은 변수가 두개들어오면, 뭐로 결과를 줘야할지 모름 그래서 프로그래머가 어느방향이 우선일지 정해줘야함
  • pass by reference
    • 주소값을 전달해줌
    • 직접 값에 접근하는 속도는 느리며, 값이 변경될 수 잇음
  • pass by name
    • claee의 파라미터가 caller의 파라미터 이름으로 변경되며, assignment할때, binding이 발생함
    • 유연하지만 복잡함
  • multidimention array
    • 넘기기 전에 몇개인지 알아야함
    • 그래서 대안으로 주소를 넘기고, row/col수를 따로넘김
  • subprogram name
    • shallow binding:가장 최근에 호출된 곳에서 값을 가져와 사용함
    • deep binding:구조적으로 가장 상위의 것을 가져와 사용함
    • ad hoc binding:자신을 호출하기 직전 값을 사용함,즉 자신의 이름이 나오기 직전
  • calling subprogram indirectly
    • gui환경 같은경우 subprogram에 무엇이 올지 정확히 모르는 경우가 많음
    • 이럴 경우 포인터를 이용함, 이떄 delegate로 명시함
  • overload subprogram
    • 같은 이름의 다른 subprogram
    • generic/polymorphic subprogram: 파라미터로 다른 값을 받음,C++의 template, java의 <String>
    • ad hoc의 형태를 띔
  • closures
    • closure은 sub program이며, 참조 환경이 바로 선언한 그곳이다
    • 이름없이 바로 거기서 선언한 함수라 보면됨
  • coroutines
    • 서브 프로그램이 시작 부분이 아닌 여러곳에서 시작 가능
    • 자기자신과 다른 사람을 호출 할 수 있음
    • resume 을 써줌


Comments