오프사이드 룰

컴퓨터 프로그래밍 언어의 블록들이 들여쓰기로 표현되는 경우 오프사이드 룰()을 준수한다고 이야기된다.
이 용어는 축구의 오프사이드 규정의 말장난으로 추정되며 피터 J. 랜딘에 의해 만들어졌다. 반의어는 자유형 언어, 특히 중괄호 프로그래밍 언어이며, 이 언어의 경우 들여쓰기가 의미없으며 들여쓰기는 단지 코드 서식의 문제일 뿐이다.

 코드 예시 
다음은 파이썬의 들여쓰기 블록의 예시이다. 콜론은 가독성을 위한 파이썬 언어 문법의 일부이며 오프사이드 규칙 구현에 필수적인 것은 아니다.

파이썬에서 선언이 아닌 문의 경계를 정의하기 위해 이 규칙을 사용한다.
def is_even(a: (int, float)) -> bool:
    """Determine whether number 'a' is even."""
    if int(a % 2) == 0:
        print('Even!')
        return True
    print('Odd!')
    return False

또, 파이썬은 중괄호 안에서 오프사이드 룰을 유예시키기도 한다. 괄호 내 문들은 괄호가 일치하거나 일치하지 않을 때까지 계속한다:
{
    "this": True,
    "that": False,
    "them": [1, 2,
3, 4, 5,
6, 7, 8,
9, 10, 11, 23]
}

이 딕셔너리에서 키들은 들여쓰기가 되어 있으며 리스트는 두 줄로 분리되어 있다.

 오프사이드 룰 언어 
 프로그래밍 언어
 ABC
 Boo
 버디스크립트(BuddyScript)
 코브라
 커피스크립트
 Converge
 커리
 Elixir (, do: 블록)
 Elm
 F# (초기 버전에서 #light를 지정할 때 룰 적용. 나중에 출시된 버전에서는 #light "off"가 아닐 때 적용됨)
 지니
 하스켈The Haskell Report - Layout (중괄호가 없는 상황에서 where, let, do, case ... of 절이 올 때)
 Inform 7
 ISWIM
 라이브스크립트
 미란다
 문스크립트(MoonScript)MoonScript, a language that compiles to LuaMoonScript 0.5.0 - Language Guide
 Nemerle
 님
 occam
 PROMAL
 파이썬
 스킴
 스핀
 XL

 기타 언어
 Haml
 Make (빌드 도구)
 reStructuredTextreStructuredText Markup Specification - Indentation
 Sass
 스타일러스
 YAML

 각주 

분류:프로그래밍 언어 주제