Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- PHP
- jobschduler
- Background
- Library
- 검사
- shceduler
- alarmanager
- schedule
- firebase
- jobdispatcher
- Service
- Job
- workmanager
- livedatam
- Android
- epmty
- 빈
Archives
- Today
- Total
에몽이
subprogramming 본문
광고
광고
- subprogramming의 기초
- 각 subprogramming은 하나의 입구가 있따.
- 섭 프로그램이 실행되는 동안은 caller가 중지된다
- 섭 프로그램이 종료되면 무언가를 return한다
- 기초
- subprogramming definition:인터페이스와 행동으로 되어있음
- formal parameter:섭 프로그램의 헤더에 써있는 더미들, default 값을 설정 할 수
- 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