Difference between revisions of "Begin"

From Free Pascal wiki
Jump to navigationJump to search
m
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The [[keyword]] '''begin''' is used to indicate the start of the executable section of a [[Function|FUNCTION]], [[Method|method]] of an [[Object|OBJECT]], [[Procedure|PROCEDURE]], [[Program|PROGRAM]], [[property]] of an object, or is used to delineate the start of a [[block]] statement.
+
{{Begin}}
  
For a function, method, procedure, program, or property, it is used after all [[Const|CONST]], [[TYPE]] and [[Var|VAR]] declarations, and before the first executable statement.  It is always terminated by an [[End|END]] statement:
+
The [[Reserved word|reserved word]] <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> marks the start of the definition of the executable portion of a [[Block|block]].
 +
In conjunction with [[End|<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>]] it is also used to group [[statement]]s into a so-called “compound statement”.
  
  '''program''' Project1;
+
{{Note|In [[Pascal]] a compound statement does not create a new scope.
  '''var'''(..);
+
Only blocks do.}}
  '''begin'''
 
    (..);
 
  '''end'''.
 
  
For a block statement, it delineates the top of the block, and is also terminated by an END statement:
+
In [[Extended Pascal|extended Pascal]] <syntaxhighlight lang="pascal" inline>to begin do …</syntaxhighlight> starts the definition of the [[Initialization|<syntaxhighlight lang="pascal" inline>initialization</syntaxhighlight> part of a module]].
  
  '''if''' (..)'''then'''
+
While every <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> must have a corresponding <syntaxhighlight lang="pascal" inline>end</syntaxhighlight>, not all occurrences of <syntaxhighlight lang="pascal" inline>end</syntaxhighlight> have a corresponding <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>.
  '''begin'''
 
    (..)
 
  '''end'''
 
  '''else'''
 
  '''begin'''
 
    (..)
 
  '''end''';
 
  
A '''begin''' ''must'' be closed with '''[[End|end]]'''.
+
== syntax justification ==
 +
Lots of programming languages use a pair of single characters to indicate boundaries.
 +
Typing out the words <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> and <syntaxhighlight lang="pascal" inline>end</syntaxhighlight> is indeed more cumbersome than writing <syntaxhighlight lang="c" inline>{ }</syntaxhighlight>.
 +
However, the meaning of such characters is not as obvious as words are.
 +
 
 +
== matching ==
 +
* The source editor of the [[Lazarus IDE]] supports a “find matching begin/end” function.
 +
* [[vim#navigation|vim]] can be configured to support matching Pascal’s <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>/<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>, too.
  
 
{{Keywords}}
 
{{Keywords}}

Latest revision as of 21:52, 21 August 2021

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) 中文(中国大陆)‎ (zh_CN)

The reserved word begin marks the start of the definition of the executable portion of a block. In conjunction with end it is also used to group statements into a so-called “compound statement”.

Light bulb  Note: In Pascal a compound statement does not create a new scope.

Only blocks do.

In extended Pascal to begin do starts the definition of the initialization part of a module.

While every begin must have a corresponding end, not all occurrences of end have a corresponding begin.

syntax justification

Lots of programming languages use a pair of single characters to indicate boundaries. Typing out the words begin and end is indeed more cumbersome than writing { }. However, the meaning of such characters is not as obvious as words are.

matching

  • The source editor of the Lazarus IDE supports a “find matching begin/end” function.
  • vim can be configured to support matching Pascal’s begin/end, too.


Keywords: begindoelseendforifrepeatthenuntilwhile