맨위로가기

비구조적 프로그래밍

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비구조적 프로그래밍은 레이블이나 명령어 주소로의 비구조적 점프를 사용하여 프로그램의 실행 흐름을 제어하는 방식을 말한다. 이는 일련의 문, 선택, 반복 구문을 사용하는 구조적 프로그래밍과 대조된다. 오늘날 많은 프로그래밍은 구조화되어 있지만, return 문, 루프 탈출, 예외 처리, 계속과 같은 기능들은 비구조적 패러다임의 예시로, 구조적 프로그래밍 언어에서도 널리 사용된다.

2. 특징 및 일반적인 개념

비구조적 프로그래밍은 프로그램 실행 흐름이 순차적으로 진행되지 않고, `GOTO`문 등을 사용하여 프로그램의 특정 위치로 이동하는 방식이다. 이는 프로그램의 구조를 파악하기 어렵게 만들고, 유지보수를 어렵게 하는 단점이 있다. 구조적 프로그래밍은 이러한 비구조적 프로그래밍과 대조적이다.

2. 1. 기본 개념

비구조적 언어의 프로그램은 레이블 또는 명령어 주소로의 비구조적 점프를 사용한다. 줄에는 일반적으로 번호가 매겨지거나 레이블이 있을 수 있다. 이를 통해 실행 흐름이 프로그램의 모든 줄로 점프할 수 있다. 이는 구조적 프로그래밍과 대조적이다. 구조적 프로그래밍은 일련의 문, 선택(if/then/else) 및 반복(while 및 for) 구문을 사용한다.

3. 현대적 용도

오늘날 많은 프로그래밍은 구조화되어 있다. 그러나 구조화된 패러다임은 지나치게 제한적일 수 있으며, 일부 로직은 비구조화된 방식으로 더 쉽게 표현될 수 있다.

예외 처리와 계속은 비구조적 패러다임의 예시이다. 계속은 Goto 문의 기능을 일반화한 것이라고 할 수 있다.

3. 1. return 문

함수에서 `return`은 나머지 코드를 실행하지 않고 해당 함수에서 반환하게 한다. 이것은 비구조적 패러다임의 일종이며, 구조적 프로그래밍 언어에서도 널리 사용된다. 루프 탈출 등에도 이와 유사한 점이 적용된다.

한편, 순수 함수형 언어에서는 모든 곳이 "중간 리턴"이라고 할 수 있으며, 절차적 언어 내에서도 순수한 함수라면 중간 리턴으로 작성하는 것이 더 단순하고 이해하기 쉬우며 오히려 구조화되어 있다고 할 수 있다. 즉, 표면적인 코딩 규칙으로 "중간 리턴 금지" 등과 같이 교조적으로 규정하는 것은 구조화라는 것을 전혀 이해하지 못한다는 증거이기도 하다.

3. 2. 루프 탈출

`break` 문과 같이 반복문 중간에 실행을 중단하고 제어를 이동하는 기능 또한 비구조적 프로그래밍 요소로 간주될 수 있다.

3. 3. 예외 처리

프로그램 실행 중 발생하는 예외를 처리하는 메커니즘인 예외 처리는 비구조적 패러다임의 한 예시이다. 예외 발생 시, 프로그램의 흐름이 예외 처리 블록으로 점프하기 때문이다.

3. 4. 계속(Continuation)

계속은 프로그램 실행의 특정 지점을 저장하고 나중에 해당 지점으로 복귀할 수 있게 해주는 기능이다. 이는 `goto` 문의 기능을 일반화한 것으로 볼 수 있다.

4. 비판적 관점

구조적 프로그래밍과 대조적으로 비구조적 언어의 프로그램은 레이블 또는 명령어 주소로의 비구조적 점프를 사용한다. 오늘날 많은 프로그래밍은 구조화되어 있지만, 구조화된 패러다임은 지나치게 제한적일 수 있으며, 일부 로직은 비구조화된 방식으로 더 쉽게 표현될 수 있다.

예를 들어, 함수에서 return 문은 나머지 코드를 실행하지 않고 해당 함수에서 반환하게 하는 비구조적 패러다임의 일종이며, 구조적 프로그래밍 언어에서도 널리 사용된다. 루프 탈출도 이와 유사하게 적용된다.

한편, 순수 함수형 언어에서는 모든 곳이 "중간 리턴"이라고 할 수 있으며, 절차적 언어 내에서도 순수한 함수라면 중간 리턴으로 작성하는 것이 더 단순하고 이해하기 쉬우며 오히려 구조화되어 있다고 할 수 있다. 즉, 표면적인 코딩 규칙으로 "중간 리턴 금지" 등으로 하는 것은 구조화에 대한 이해 부족을 나타내는 것일 수 있다.

예외 처리와 계속도 비구조적 패러다임의 예이다. 계속은 Goto 문의 기능을 일반화한 것이라고 할 수 있다.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com