[기말레포트] 배열의 설계와 구현
- 최초 등록일
- 2009.04.05
- 최종 저작일
- 2008.07
- 12페이지/ 한컴오피스
- 가격 2,500원
소개글
1.프로그램언어개념 수업시간했던 기말과제입니다.
가장 중요한 결과인 과제에 대한 평가는 학점은 a+ 나왔습니다.
수업따라가랴, 숙제하랴, 바쁜 하루하루를 보내고 있을 우리 공대생분들에게
이 과제가 도움이 되었으면 좋겠습니다.
목차
- 들어가며
1. 일차원 배열의 설계
2. 이차원 배열의 설계
3. 소감
본문내용
* 들어가며
한 학기동안 프로그래밍 언어개념을 배우면서, 마지막 기말레포트인 배열의 설계와
구현을 작성하게 되었습니다. 배열의 대한 기존 언어의 설계를 조사하여, 작성하는
것도 나쁘진 않지만, 최대한 제가 가진 상상력을 발휘하여 새롭게 배열을 설계하여
보려는데 이 과제의 의의를 뒀습니다.
비록 깊지않은 지식이지만, 새로운 것을 만들어 본다는데 의의를 두고,
실제 언어 설계하는 사람의 입장에서 어떻게 하면 적응성과 효율성 두 가지를 잡을
수 있을까? 하는 많은 생각을 갖고, 비록 설계라는 이름을 붙이기에 민망하지만,
나름대로 열심히 작성하여 보았습니다.
1. 일차원 배열의 설계
처음 할당받는 값으로 배열의 크기를 정하는 일차원 배열
▪ 일차원 배열의 크기를 정하는 n이 언제 바인딩 되는가에 관계없이 배열을 선언할 수
있도록 설계하였습니다. 단, 처음 할당받은 값 n의 크기만큼의 연속된 공간에
배열을 저장하기 때문에 이후, 일차원 배열의 크기를 늘릴 수 없습니다
◈ 가정
⒜. 배열은 heap영역에 저장 된다.
⒝. 배열은 Descriptor를 생성하는데, Descriptor는 컴파일시 메모리에 할당한다.
⒞. 배열의 Descriptor의 내용을 결정한 후 , heap 영역에 연속적으로 메모리를 할당한다.
▪ 예1-1) 은 일차원 배열이 크기를 컴파일 타임에 정할 수 있을 때를 설계한 것으로
⒜경우는 이미 배열의 사이즈가 상수로 정해져 있으므로, 쉽게 결정할 수 있다.
하지만, ⒝경우 ⒜경우보다 복잡한 것을 볼 수 있다.
언어는 eager evaluation을 따르고 있으므로, 스택의 영역에 B에 대한 Descriptor만 올려놓고
, Sum(b)의 값을 구하기 위해 b를 매개변수로 하는 Sum(b)를 계산한다.
Sum(b)함수 내에 컴파일타임에서 결과가 계산되면, 비어있던 B의 Descriptor 부분을 채운다.
참고 자료
프로그램언어개념