컴퓨터, 프로그래밍
"이 무엇입니까"그 "는 것을"돌아왔다, 스택에있다 : 현실의 추상적 재단
아마도 어떤 미래 컴퓨팅 사업에 1과 0에 대해 잊지 프로세서는 바이트 단어에서 작동하지만, 지금까지 모든 것이 표현된다 이진 세계와 자신의 규칙에 의해 살고 있지 않습니다. 무엇 스택이며이 적용되는 경우 - 절대적으로 명확 될 가능성이 높습니다. 일찍이 자신의 외모의 시작으로 최초의 프로세서 레지스터, 그리고 그의 작품의 논리 메모리를 필요로했다. 간단한 아이디어의 결과로 "는 것을"사실상이되었다 스택 "필요에 따라."
기능 처리부 이진 논리
프로세서는 메모리를 제어하고, 순환 코드 실행 로직을 구현한다. 프로그램 - 작업의 순서를 나타냅니다 기능의 하나 개 세트 : 그렇게 할 수있는 뭔가를 선택하는 뭔가를 넣어하는 것입니다. 운영 체제 - 동일한 코드보다 책임 : 실행하고 다른 프로그램을 제어하기 위해 위임된다.
이진 연산 단지 시퀀스 - 사실 (알고리즘 독립 요소) 함수. 프로그램 자체를 실현하고, 코드의 다른 부분을 조정하는 기능과 다르다.
분리 된 별개의 요소들의 시퀀스로 받아 디자인 알고리즘. 각각은 자신의 (일반적으로 하나의) 기능을 수행 - 그것은 시각적 디버깅, 실제 편리합니다. 이 프로그램은 알고리즘의 라이브러리를 생성하고 다른 프로젝트에서 사용하기 위해 개발 과정을 단순화 할 수 있습니다.
보내기 및 관리를 돌려줍니다
프로그램 결과를 산출 그것에 데이터를 전달하는 기능을 호출한다. 복귀 제어 동작의 다음 호출을 수행해야하기 때문에, 다른 코드 부분을 실행하기 때문에, 외부로부터 개시된다. 이 메커니즘은 코드 실행 및 전체 프로그램 결과의 달성의 순서에 의해 제공된다.
코드는 메모리에로드 순차적으로 실행된다. 함수 (코드의 다른 부분)를 호출하기 위해, 스택이 사용된다. 그것은 무엇입니까? 메모리 (그리고 포인터) 각각의 연속 요소가 이전 위에 배치된다는 점에서 일반 다르다. 아래 인 사람을 얻을 수 있기 때문에, 당신은 일을하는 데 필요한 그 안에있는 모든 것을. 포인터는 항상 스택의 현재 위치를 가리 킵니다.
처음에는 스택은 반환 주소를 가져옵니다 - 통화 수술 후 주소를. 그런 다음 호출 된 함수에 대한 모든 필요한 데이터를 입력합니다. 호출 된 함수는 이들을 처리하는 데이터를 선택하고, 스택의 마지막 요소에 대한 결과를 반환 제어를 생성한다. 팀 : "그것은 스택은"주어진 이전에 포인터를 이동하고,이 "가"처리로 이동 선정했다.
레지스터 AX, BX, CX, DX는, EX는 정보화 시대의 시대의 시작의 상징이되었다지만, SP와 SS는 - 주요 마스코트입니다. 어떻게 프로그램의 스택을 사용 하는가? 과거의 예는 초기 시대의 건축 기념물되지 않습니다. 스택 함께 단어 "기능"과 "재귀"로, 이진 세계로 와서 프로그래밍 연습의 일반적인 논리로 사라졌다.
무엇을 결정하는 데이터를 제공
메커니즘을 스태킹하면 재귀를 포함한 코드의 다른 부분에 여러 번 호출 할 수 있습니다 : 함수 자체를 호출합니다. 자연 제한이 있습니다 : 스택과 코드에 대한 메모리 크기가 충분해야합니다. 정확한 - 프로그램이 올바른 경우, 그 성능은 안정적 전송 / 반품 관리 될 것입니다.
접시가 테이블을 마련하기 위해 전송되는 더미, 거짓말로 스택이 가득합니다. 인 판의 운명, 그 내용은, 그것이 송신되는 곳에서 해결된다. 상호 작용의 논리에 따르면, 팀은 "스택, 그것은"제공하는 사전 배치라는 사람, 그가라는 사람들을 사이에이. 과정이 완료되면이 테이블에 스택을 전송 한 다음 주소로 제어를 반환하는 것이 중요하다.
아주 간단하고 효과적인 논리. 결정이 만들어으로 어떤 테이블에 -의 관리, 중요한 것은 항상 작동을 위해 다음 도전에 제어를 반환하는 것입니다 - 그것은 데이터의 스택을 보낼 것입니다 무엇을 테이블에 우려 - 그것이 결과로 간다 작동합니다. 함수는 재귀 인정하지만, 데이터는 스택에 속하는 경우에만 순환 가능한 경우에만 자신을 호출 할 수있다.
기본적인 추상화
일반 및 실용적인 관점의 기초가되면, 사실상, 우리는 합리적으로 객관적인 것으로 예상, 후자의 긴 수명 수 있습니다. 판의 스택 스택을 낳았, 스택은 전체 작업 프로세서, 운영체제, 프로그램, 기능 및 첨단 기술 분야를 제공했다.
이 언어의 생존을위한 싸움에서 구문, 의미, 프로그램 준비 및 우선 순위에 대한 빈 분쟁없이 추정 할 수있을 때 클래식 케이스는 간단하지만 드문 경우의 기준이었다.
부분적으로 메모리 셀이었고, 그것은 오늘날까지 남아 있지만, 그것의 아이디어가 변경입니다. 자신있게 강력한 타이핑의 두께를 통과, 그들은 지금 뭔가 아무것도하고 이미 매우 중요하기 때문에, 아무것도의 실제 메모리에 저장할 수 있다고 주장한다.
대입 연산자, 조건, 루프, 블록 ...뿐만 아니라, 오랜 시간에 대한 구문은 중요하지 않습니다, 그 의미의 측면에서 훨씬 작은 변화. 프로그래밍 언어의 이상에 대한 싸움은 그들 중 하나를 이길 수있는 기회를 제공하지 않습니다. 저자의 프로그래머 돌보는 아닌 언어 - 도구 (컴파일러 / 통역 / 쉘) 단순히 작동 / 사용을 쓸 안정적이고 완벽한 기능을 갖춘, 어떻게 무엇을 할 의무가있다.
스택은 아이디어와 기술 개발의 글로벌 과정에서 새로운 의미를 인수했다. 그들이 편리 서로 중첩 보유하고있는 형태의 변수 및 알고리즘 및 운영자는 서로에 포함되어 있습니다. 하나가 다른 작업을 제공 할 때 종종 프로토콜 스택에 대해들을 수 있습니다.
스택, 기능 및 재귀 - 대명사하지 않습니다,하지만 그들은 당신이 정보의 제출 및 처리의 독특한 버전을 만들 수 있도록, 서로를 완벽하게 보완합니다.
Similar articles
Trending Now