Presentation is loading. Please wait.

Presentation is loading. Please wait.

SNOBOL 4 By: Bahman Ravaei 790649 Farhad Rad 116703 81-82-2 نیمسال.

Similar presentations


Presentation on theme: "SNOBOL 4 By: Bahman Ravaei 790649 Farhad Rad 116703 81-82-2 نیمسال."— Presentation transcript:

1 SNOBOL 4 By: Bahman Ravaei Farhad Rad نیمسال

2 Introduction to the snobol 4 P.L Developed at BELL laboratories in 1962 Is a string of characters (character oriented) Define other data type Consist of a sequence of statement Array and Table have more flexibility Function calls can be made recursively Link list node and complex number are possible programmer define data type

3 four basic type of statements: i) the Assignment statement ii) the Pattern matching statements iii) the Replacement statement iv) the End statement

4 Assignment statements : the simple type of assignment: variable = value example: v = 5 the value may be given an experssion example: W = 14 + ( ) which assigns the value 20 to the variable w

5 BLANK are required around arithmetic operators The value may be string of characters example: v = dog

6 Arithmetic: i) Integers ii) Real arithmetic operation is addition +, subtraction -, multiplication *, division / and exponentiation ** or ! blanks are required between the binary operators and their operands,Unary operator such as the minus sign must be adjacent to their operands. example: Q2 = -P / -N

7 Predicates of arithmetic operations : -Unary operators -Exponentiation -Multiplication and Division -Addition and Subtraction All arithmetic operations associate to the left except exponentiation. example : 2 ** 3 ** 5 is equivalent to : 2 ** (3 ** 5)

8 Example : m = 4 n = 5 p = n * m / (n - 1) assign the value 5 to p Example : pi = mul = 2. * pi * 5. assign Real value to pi and mul

9 Pattern matching statements: Define : The operation of examining for occurrence of specified substring Pattern matching have two type: i ) the pattern matching statement ii ) the replacement statement

10 the pattern matching statement : the pattern matching statement has the form : subject pattern two fields separated by at least one blank example: trade = programmer trade gram Pattern can an expression row = k no. = 20 kk2429 row no. + 4 pattern is equivalent by k24

11 Replacement statements The replacement statement has the form subject pattern = object If the pattern matching operation succeeds the subject string is modified by replacing the matched substring by the object. example: WORD = GRID WORD I = OU thus WORD is equivalent GROUD

12 If pattern not found the statement failed example: WORD AB = OU example: HAND = AC4DAHDKS RANK = 4 SUIT = D HAND RANK SUIT = AS first RANK and SUIT concatenate that it s 4D and later HAND 4D = AS example : HAND RANK SUIT =

13 Patterns Two operation available for constructing complex patterns: i) alternation ii) concatenation alternation is indicated by expression of the form: P1 | P2 example: KEYWORD = COMPUTER | PROGRAM KEYWORD = KEYWORD | ALGORITM

14 can use KEYWORD to pattern field: TEXT = PROGRAMMING ALGORITM FOR COMPUTERS TEXT KEYWORD = after matching: TEXT = MING ALGORITM FOR COMPUTERS

15 Concatenation Concatenation of two patterns,P1 and P2,is specified in the same way as the concatenation of two strings: P1 P2 example: BASE = BINARY | DECIMAL | HEX SCALE = FIXED | FLOAT ATTRIBUTE = SCALE BASE

16 Array : Arrays are created by function ARRAY. ARRAY (p, e) example : board = ARRAY ( 3,3, x ) xxX Xxx xxx

17 Example : A1 = ARRAY ( 5 ) A2 = ARRAY (5, A1) A2 A1

18 Flow of control A SNOBOL program is a sequence of statements terminated by an end statement. labels and goto provide to control the flow of the program. Example of label: START TEXT = INPUT the end statement is distinguished by the label END

19 Transfer to a labelled statement is specified in the goto field which may appear at the end of a statement and is separated from the rest of the statement by a colon :. Two types of transfers can be specified in the goto field : i ) conditional ii ) unconditional

20 conditional A conditional transfer consists of a label enclosed within parentheses preceded by an F or S corresponding to Failure or Success. example : TEXT = INPUT :F(DONE) example : LOOP PUNCH = INPUT S:LOOP END

21 we can use F and S in one statement example: COLOR = RED | GREEN | BLUE BRIGHT TEXT COLOR = :S(BRIGHT)F(BLAND)... BLAND…….

22 unconditional An unconditional transfer is indicated by the absence of an F or S before the enclosing parentheses. example: LOOP PUNCH = INPUT :F(END) OUTPUT = PUNCH :(LOOP) END

23 Indirect reference Indirect referencing is indicated by the unary operator $. examples: i)MONTH = APRIL $MONTH = CRUEL is equivalent: APRIL = CRUEL ii)WORD = RUN $(WORD :) = $(WORD :) + 1 iii)$(A | B) iv)N = N + 1:($(PHASE N))

24 Functions: i) primitive functions ii) predicates iii) defined functions

25 Primitive function Many snobol procedure are invoked by function built into the system,called primitive functions. Few example of primitive function: i) SIZE (string) APE = SIMIAN OUTPUT = SIZE(APE) ii) DUPL (string,integer) DUPL(/*,5) iii) REPLACE( TEXT,CH1,CH2) STATEMENT = A(I,J) = A(I,J) + 3 OUTPUT = REPLACE(STATEMENT,(),<>) print the line :A = A + 3

26 Predicate: A function or operation that returns the NULL string if a given condition is satisfied. Example: i) LE(n1, n2 ) PUNCH = LE( SIZE(TEXT),80) TEXT ii) LT( n1, n2 ) ADD N = LT( N, 50 ) N+1 iii) DIFFER ( st1, st2 ) OUTPUT = DIFFER ( FIRST, SECOND ) FIRST SECOND iv) LGT ( st1, st2 )

27 Defined function: A function defined by Programmer. The primitive function DEFINE to specify the function name, formal arguments, local variables, and the entry point of the function. Example: DEFINE ( DELETE ( STRING, CHAR ), D1 ) D1 STRING CHAR = :S ( D1 ) DELETE = STRING : ( RETURN )

28 Example: DEFINE ( DELETE ( STRING, CHAR ) ) DELETE STRING CHAR = :F ( FRETURN) D2 STRING CHAR = :S ( D1 ) DELETE = STRING : ( RETURN )

29 Programmer define data type: The primitive function DATA can be used to difine the new data type. Example: DATA( NODE ( VALUE, LINK) ) P = NODE ( S, ) P = NODE ( T, P ) P = LINK ( P ) P S NULL T

30 Program format: Example: OUTPUT = THE TOTAL NUMBER OF OCCURRENCE IS + SUM Example: X = 2 ; Y = 3 ; Z = 10 * : THIS IS A COMMENT

31 End


Download ppt "SNOBOL 4 By: Bahman Ravaei 790649 Farhad Rad 116703 81-82-2 نیمسال."

Similar presentations


Ads by Google