반환 지향형 프로그래밍
반환 지향 프로그래밍은 스택 스매싱의 진화된 버전이다. 일반적으로 공격들의 이러한 종류들은 상대방이 프로그램의 버그(주로 버퍼 오버런)를 이용함으로써 콜 스택을 조작할 때 발생한다. 버퍼 오버런 시에 사용자가 제공하는 데이터를 적절한 경계 검사 없이 메모리에 저장하는 함수는 적정한 양보다 더 많은 데이터를 받아들일 수 있다. 데이터가 스택에 겹쳐써지면 초과된 데이터는 함수의 변수에 할당된 공간을 넘치게 되고 반환 주소도 겹쳐쓰게 된다. 이 주소는 이후에 함수에 의해서 제어 흐름을 다시 호출자로 넘겨줄 때 사용된다. 만약 겹쳐써졌다면 제어 흐름은 새로운 반환 주소로 넘겨지게 된다.
축소 명령어 집합 컴퓨터
1960년대로 거슬러 올라가면 수많은 시스템들이 최초의 RISC 아키텍처라고 볼 수도 있는데, 이는 부분적으로 로드/스토어 접근 방식에 기반을 두기 때문이다. RISC라는 용어는 버클리 RISC 프로젝트의 데이비드 패터슨이 만든 용어이지만 비슷한 개념은 이미 그 이전에 등장하였다.CISC에서는 하드웨어가 스택을 지원하지만, RISC에는 없다. 스택 제어(데이터의 PUSH, POP이 발생할 때 레지스터의 퇴피, 서브루틴에 점프했을 때의 리턴 주소의 보존, 복귀)의 처리는 단순한 명령을 조합하여 소프트웨어로 구현된다. 명령어의 순서로 인해 발생할 수 있는 파이프라인의 위험은 컴파일하는 동안 최적화되어 사라진다.