2012-11-13 5 views
1

저는 C와 Cyclone을 처음 사용합니다. 나는 Michael Hicks의 논문 Experience With Safe Manual Memory-Management in Cyclone을 통해 자신의 길을 가고있다.포인터를 사용한다는 것은 무엇을 의미합니까?

그들은 말 :. "우리는 고유의 포인터 는 분석이 포인터를 사용하는 후속 시도를 거부하는 경우, 소비되는 경우를 추적하는 intraprocedural, 플로리다 흐름에 민감한 pathinsensitive 분석을 사용하는 우리 는에 intraprocedural 분석을 선택 모듈화 검사 및 경로를 구분하지 않는 분석을 통해 확장 성을 보장합니다. 분석을 단순하게 유지하려면 고유 포인터 (예 : 할당 또는 함수 호출)의 사본이 포인터를 사용하는 것으로 처리됩니다. "

포인터를 "소비"한다는 것은 무엇을 의미합니까? 표준 용어입니까?

+2

인용문의 마지막 문장을 말한다을 사용하려는 모든 시도를 의미 할 수도 소비, 키가 "이후"라는 단어를 생각의 "의 예를 들어 고유 포인터 (사본, 할당 또는 함수 호출) 포인터를 소비 것으로 간주됩니다. " 당신이 묻고있는 것이 아닙니까? –

+0

@JamesMcNellis 그래서 이것은 그들의 논문에서 정의한 용어입니다. 표준 용어가 아닌가? – bernie2436

+0

@ akh2103 C에서 표준 용어는 아니지만, 선형 유형 및 유사 시스템 (aliasing)을 금지하는 표준 용어 (동일한 이름의 두 이름이 두 이름 임)가 있지만 새로운 시스템이 도입되면 기존의 것과 동일하지는 않지만,이 특정한 경우에서 의미가 무엇인지에 대한 정의가이 논문에서 제공됩니다. 나는 또한 C를 처음 접하는 사람이라면 6 년 안에 다루지 않은 상당히 희귀 한 연구 기반 파생물에 뛰어들 수있는 최고의 장소가 아닐지도 모른다. –

답변

1
e.g., in an assignment or function call 

포인터가 함수에 매개 변수로 지정되거나 전달 될 때 포인터가 사용됩니다.

4

그들은 특정 포인터가 고유 한 C의 변형을 구현하고 있습니다. 즉, 동일한 포인터를 동시에 두 개 복사 할 수는 없습니다. 따라서 포인터를 복사 (함수에 전달하여 다른 변수에 할당) 할 때마다 새 사본은 유효한 것으로 간주되고 이전 사본은 유효하지 않은 것으로 간주됩니다. 그들은 이것을 포인터를 "소비"한다고 부릅니다.

견적을 제출 한 섹션에서 원본 문서에서 Hicks는 "소비"라는 단어를 이탤릭으로 표시하여 해당 의미가 의미를 정의하고 있음을 나타냅니다. 포인터를 "소비"하는 정의는 포인터가 복사 된 시점을 추적하고 그 포인터의 사용을 더 이상 거부합니다.

이 사용은 이전 사용법을 기반으로합니다. 예를 들어 선 유형, 별명 유형 및 기능 유형에 대한 이전 작업에 나열된 참조를 확인하는 경우 비슷한 의미로 "소비"라는 단어를 사용하여 찾을 수 있습니다. Typed Memory Management in a Calculus of Capabilities : "선형 유형 시스템에서 앨리어싱은 간단하게 제어되며 지역 이름을 사용하면 그 이름을 사용하여 다른 곳에서 사용할 수 없습니다." 따라서이 용어는 기존 사용법을 기반으로하지만, Hicks는 형식화 된 람다 계산법의 이름 대신 C의 변형으로 포인터에이를 적용하므로 정확한 정의는이 백서에서 철자를 써야합니다.

관련 문제