CSC/ECE 517 Fall 2011/ch1 1e aa: Difference between revisions
Line 6: | Line 6: | ||
A Block is a part of code that is clustered together. It is thus; a group of program statements and variables referred to in those statements. Block of code is always contained within delimiters; typically 'begin'-'end', opening and closing curly braces '{ }' and can be compiled and executed as a single execution unit. Block can be the body of a subroutine, a function or an entire program. The main block can contain subsections consisting of inner blocks. Those inner blocks can contain more inner blocks giving rise to a nested block structure. One example of a language which allows such block structure is Pascal. | A Block is a part of code that is clustered together. It is thus; a group of program statements and variables referred to in those statements. Block of code is always contained within delimiters; typically 'begin'-'end', opening and closing curly braces '{ }' and can be compiled and executed as a single execution unit. Block can be the body of a subroutine, a function or an entire program. The main block can contain subsections consisting of inner blocks. Those inner blocks can contain more inner blocks giving rise to a nested block structure. One example of a language which allows such block structure is Pascal. | ||
In most primitive block structured languages, the scope of a variable can be limited to the block in which it is declared. This is called lexical scoping. Thus, referring to the nested structure of the blocks; all the variables declared in the outer block can be accessed within that block and all of its inner blocks but are not accessible outside that block. | program a; | ||
var id1, id2, id3 : integer; { program a declarations } | |||
procedure b; | |||
var id1 : integer; { procedure b declarations } | |||
procedure c; | |||
var id2 : integer; { procedure c declarations} | |||
begin { Beginning of c's statement part } | |||
id2 := id1; | |||
end; | |||
begin { Beginning of b's statement part } | |||
id1 := id3; | |||
id2 := id1; | |||
end; | |||
begin { Beginning of main program's statement part } | |||
id1 := id2; | |||
end. | |||
In most primitive block structured languages, the scope of a variable can be limited to the block in which it is declared. This is called lexical scoping. Thus, referring to the nested structure of the blocks; all the variables declared in the outer block can be accessed within that block and all of its inner blocks but are not accessible outside that block. Additionally, values of the variables in the outer blocks are accessible in the inner blocks if and only if there is no other variable in the inner block with the same name. This duplicate declaration of variables is called Shadowing. | |||
By having statements grouped together as a Block allows us to treat it as a single statement and thus allows the programmer to keep the 'lexical' scope of the functions, variables and procedures closely bound to that Block. Earliest block-structured languages were Algol 58 and Algol 60 with which the initial idea of block was born. |
Revision as of 22:31, 30 August 2011
Wiki Chapter: CSC/ECE 517 Fall 2011/ch1 1e aa
Introduction
This Wiki chapter talks about the basic fundamentals of block structured programming and Object Oriented programming and explains the advantages of Object Oriented programming over block structured programming which made O-O languages more common and widely used in the Software Industry today. We also focus on the practicability of using block structured approach in O-O languages.
Block-Structured Languages
A Block is a part of code that is clustered together. It is thus; a group of program statements and variables referred to in those statements. Block of code is always contained within delimiters; typically 'begin'-'end', opening and closing curly braces '{ }' and can be compiled and executed as a single execution unit. Block can be the body of a subroutine, a function or an entire program. The main block can contain subsections consisting of inner blocks. Those inner blocks can contain more inner blocks giving rise to a nested block structure. One example of a language which allows such block structure is Pascal.
program a; var id1, id2, id3 : integer; { program a declarations } procedure b; var id1 : integer; { procedure b declarations } procedure c; var id2 : integer; { procedure c declarations}
begin { Beginning of c's statement part } id2 := id1; end; begin { Beginning of b's statement part } id1 := id3; id2 := id1; end; begin { Beginning of main program's statement part } id1 := id2; end.
In most primitive block structured languages, the scope of a variable can be limited to the block in which it is declared. This is called lexical scoping. Thus, referring to the nested structure of the blocks; all the variables declared in the outer block can be accessed within that block and all of its inner blocks but are not accessible outside that block. Additionally, values of the variables in the outer blocks are accessible in the inner blocks if and only if there is no other variable in the inner block with the same name. This duplicate declaration of variables is called Shadowing.
By having statements grouped together as a Block allows us to treat it as a single statement and thus allows the programmer to keep the 'lexical' scope of the functions, variables and procedures closely bound to that Block. Earliest block-structured languages were Algol 58 and Algol 60 with which the initial idea of block was born.