オフサイドルール(Off-side Rule)とは、一部のプログラミング言語において字下げによって文などのかたまりの範囲(ブロック)を示す規則である。すなわち、そのような言語ではブロックは字下げによって形成され識別される。この用語と考え方は Peter J. Landin によるもので、ここでのoff-sideは「(左端)側から離れる」という意味だが、これはサッカーなどの球技におけるオフサイド規則 (offside law) のもじりと考えられる。レイアウト・ルールと呼ぶこともある。(ただし言語によっては似たような見た目になるものの違う規則によっているものもある)英語版ウィキペディアに示されている英文は実際にこのようであるのだが、その英文そのままの表現は原文献中には見当たらないようである(英語版の該当記事のnoteにある議論も参照のこと)。該当する箇所は4枚目(160頁)の左カラムの下端付近、段落の頭に (c) とある部分で、"the offside rule." という明確な表現があるのも確認できるが、そこにはルールとして次のようにある。The southeast quadrant that just contains the phrase's first symbol must contain the entire phrase, except possibly for bracketed subsegments.直訳すると以下のような感じであろうか。フレーズの最初のシンボルをちょうど含む南東の象限(southeast quadrant)は、フレーズ全体を含まねばならない。ただし、ブラケットによって囲まれた部分がある場合はそこは例外である。ここで、「フレーズ全体」とは、現代の言い方で言うブロックの全体のことで、「最初のシンボル」は begin といったようなキーワードないしその最初の文字、と解釈できる。英語版の文章の初出は不明だが、FOLDOCの当該の項( http://foldoc.org/off-side%20rule )の文中に見られる。以下の例は Python における字下げブロックを示している(コロンは可読性を高める構文上のマーカーでもある):前述のように、Landin による提案がオフサイドルールのはじまりと一般に認知されているが、クヌースが"Structured Programming with go to Statements"で引用している Dewey Val Schorreの "Improved Organization for Procedural Languages"(Landin の提案と同じく1966年)に、とあり、ほぼ同時期に他にも(おそらく複数)独立して同様の試行が存在している。以下ではオフサイドルール以外のブロックの記法について概観する。Cで一般化した手法として、余分な空白を無視して波括弧 codice_1 と codice_2 でブロックを表すという方法がある。この方法の利点は、自動的に読みやすく字下げすることが可能で、しかもそれによってコードの意味が変化しない点である。人間が読むとき字下げに目が行ってしまい、括弧で表現されている真の構造を読み違える可能性があるが、真の構造をきちんと反映するように自動で修正するという手がある。LISP(のS式)は、全ての開始と終了を丸括弧ないし角括弧で明示する(中括弧を使用する言語と同様、余分な空白は無視される)。そもそもS式(S-expression)はプログラムコードのリスト構造による内部表現をそのまま一種のリテラルのようにして表現(express)したものである。他の手法として、ブロックの開始と終了を記号ではなくキーワードで表現する方法がある。ここで論じている他の構文と同様字下げには意味が無い。ALGOLで一般化した手法として、"codice_3" でブロックを開始し、"codice_4" でブロックを終了するという方法がある(これは、具象構文(見た目)は大きく違うが、抽象構文としては波括弧の言語とさほど違うものではない)。いくつかの言語では、繰り返しや条件分岐を表現するキーワードが暗黙のうちにブロックの開始(や終了)も表現する。構造化BASICなどでは、ブロックはブロックをともなうキーワード自身(例えば "codice_5")で開始され、前に "END" をつけたキーワード(例えば "codice_6")で終了する。Bourne Shellの一部の文法などでは、ブロック終了を示すキーワードは開始するキーワードを逆に綴ったものである(例えば、"codice_7" で始まるブロックは "codice_8" で終了する)。EiffelやRubyでは、ブロックをともなうキーワード自身(たとえば"codice_7")で開始され、"codice_4"で終了する。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。