배열을 만들 때 fortran과 같은 언어는 모든 정적 환경에있을 때 활성화 레코드를 어떻게 만들 수 있습니까? 컴파일 시간 동안 배열)? 나는 그것이 참조에 의한 전달을 사용한다는 것을 알고있다. 활성화 레코드에서 배열 대신에 참조를 저장한다는 의미인데 아직 배열되지 않은 배열에 대한 참조를 저장할 수 있는가?포트란 (또는 모든 정적 환경이있는 언어)에서 활성화 레코드 및 배열
답변
FORTRAN의 많은 구현에서 코드 세그먼트의 확장으로 정적으로 할당 할 수있는 각 서브 프로그램에 대해 단일 활성화 레코드가 있다고 보통 말하기 때문에 혼란 스러울 수 있습니다. (예 : TW Pratt & MV Zelkowitz의 "Programming Languages, Design and Implementation"제 4 판 참조)
명심해야 할 점은 활성화 기록은 실행 중에 항상 채워지므로 공간은 정적으로 할당됩니다. 동일한 서브 프로그램을 여러 번 호출 할 수 있기 때문에 이해하기 쉽습니다. 그리고 그 모든 통화는 동일한 활성화 기록을 공유하며, 매번 한 번만 호출됩니다.
더 중요한 것은 배열 데이터가 활성화 레코드에 포함되어 있지 않다는 것입니다. 인수를 참조로 전달한다는 것은 데이터의 중복이 없음을 의미합니다. 참조 (포인터 또는 구현이 선택하는 것) 만 활성화 레코드에 포함됩니다. 서브 프로그램에서 배열 요소에 대한 액세스는 기본 주소 + 오프셋 메커니즘에 의해 계산 될 수 있습니다.
참조가 활성화 레코드에만 저장 되었기 때문에 배열이 가능합니까? –
일부 확장하려면 예; 특히 각 서브 프로그램에 대해 단일 정적 활성화 레코드를 작성하는 프로그래밍 언어의 경우. – innoSPG
- 1. 포트란 배열 메모리 관리
- 2. 레코드 선택기 활성화 및 비활성화
- 3. NumPy "레코드 배열"또는 "구조적 배열"또는 "재 배열"
- 4. cshift가있는 포트란 배열
- 5. 포트란 다차원 배열 구문
- 6. 포트란 코드 다차원 배열
- 7. 배열 정렬 및 포트란 95 옆으로 인쇄
- 8. Malloc, 가변 길이 배열 또는 정적 배열?
- 9. 레일 CMS : 정적 파일 또는 데이터베이스 레코드?
- 10. 동적 배열 및 정적 배열 컴파일 시간 또는 런타임?
- 11. 정규식 - 모든 언어에서 동일합니까?
- 12. HLA의 활성화 레코드
- 13. 포트란 서브 루틴에서 배열 할당
- 14. 가상 환경이있는 프로젝트 복사
- 15. 임시 배열이없는 포트란 배열 재구성
- 16. ActiveAdmin 레코드 활성화 페이지?
- 17. 동적 및 정적 배열
- 18. 정적 방법 및 배열
- 19. 활성 레코드 쿼리 사용 및 활성화
- 20. 설치 환경이있는 Django-Crontab
- 21. 포트란 파생 형 또는 클래스
- 22. 버튼 비활성화 및 활성화
- 23. 배열 및 정적 메서드 java
- 24. 정적 배열 선언 및 초기화
- 25. 포트란 : 유형에서 알 수없는 크기의 배열
- 26. 포트란 :
- 27. 왼쪽 조인은 모든 레코드 또는 없음을 반환합니다.
- 28. 암시 적 루프를 사용하여 포트란 배열 인쇄
- 29. Windows 탐색기에서 상속하는 방법 (모든 도구의 도움으로 모든 프로그래밍 언어에서)
- 30. 델파이 동적 배열 반복 및 레코드 복사
모든 정적 환경은 무엇을 의미합니까? 동일한 배열을 매우 다른 방식으로 볼 수 있으며 하나의 범위에서 배열 설명자를 사용하고 다른 범위에서 간단한 포인터를 사용할 수 있다는 것을 이해해야합니다. –
또한 포트란은 간단한 참조를 전달하지 않습니다. 그리고 디스크립터가 필요할 때 종종 포인터가 필요하지 않습니다. –
그러면 활성화 레코드는 어떻게 사용됩니까? 어떻게 불특정 크기의 배열에 대한 활성화 레코드에 공간을 만드나요? –