 .clear/window=1  .major5 .title/window=1/start=1,center/bold VAX SCAN Overview  .text/window=1/start=4,2N VAX SCAN is a block-structured programming language in the VAX/VMS environment? designed to build tools that manipulate text strings and files.   N VAX SCAN is a compiled language that includes string operators for searching, G extracting, and assigning character strings.  In addition, it contains  M powerful pattern-matching constructs that permit locating one or more complex K patterns in a file of text.  VAX SCAN can then replace the text matched by  % these patterns with text you specify. 	 .end_text 
 .end_frame   .major .clear/window=1/start=4,1  .text/window=1/start=4,2C For example, you have a suite of BASIC programs that contain record M declarations.  You've just purchased the VAX Common Data Dictionary and you'd K like to store these record definition in the dictionary and have your BASIC 5 programs include the definitions from the dictionary.   D Your problem is two fold.  First you need to translate BASIC record L descriptions into the equivalent CDDL description.  Next you need to replaceK the record descriptions in the program with an INCLUDE from the dictionary.    Specifically, ... 	 .end_text 
 .end_frame     .major .clear/window=1/start=4,1  .text/start=4,2 ? Take a BASIC program and run it through the SCAN application... 	 .end_text  .box/start=7,2/end=20,38/bold  .box/start=7,42/end=20,78/bold( .label/start=6,3 A BASIC program segment   .label/start=8,3 ...' .label/start=9,3 10     RECORD employee & .label/start=10,12 GROUP employee_name) .label/start=11,14 STRING last,first = 20    .label/start=13,12 END GROUP .label/start=14,12 BYTE age   .label/start=15,12 DOUBLE salary- .label/start=16,12 STRING children( 10 ) = 20   & .label/start=18,10 END RECORD employee .label/start=19,3 ... 
 .end_frame   .text/start=4,2 F The SCAN application places an equivalent CDD record in a file and ...	 .end_text / .label/start=6,43 Created CDD equivalent record   % .label/start=9,43 employee STRUCTURE. + .label/start=10,45 employee_name STRUCTURE. . .label/start=11,47 last DATATYPE TEXT SIZE 20./ .label/start=12,47 first DATATYPE TEXT SIZE 20. / .label/start=13,45 END employee_name STRUCTURE. ( .label/start=14,45 DATATYPE SIGNED BYTE.. .label/start=15,45 salary DATATYPE D_FLOATING.1 .label/start=16,45 children DATATYPE TEXT SIZE 20  .label/start=17,54 ARRAY 0:10.* .label/start=18,43 END employee STRUCTURE.
 .end_frame   .text/start=4,2 E Replaces the record in the BASIC program with an INCLUDE directive to   extract the record from the CDD.	 .end_text  .clear/start=9,43/end=9,77 .clear/start=10,45/end=10,77 .clear/start=11,47/end=11,77 .clear/start=12,47/end=12,77 .clear/start=13,45/end=13,77 .clear/start=14,45/end=14,77 .clear/start=15,45/end=15,77 .clear/start=16,45/end=16,77 .clear/start=17,54/end=17,77 .clear/start=18,43/end=18,77/ .label/start=6,43 Updated BASIC program segment  .label/start=8,43 ...   5 .label/start=9,43 10   %INCLUDE %FROM %CDD 'employee'  .label/start=10,43 ...
 .end_frame   .major .clear/window=1/start=4,1  .text/window=1/start=4,2E An experienced SCAN programmer can write a SCAN program to do both of J these tasks in several hours.  SCAN's powerful pattern-matching constructsE can recognize the syntax of a BASIC record descriptions, can pull the H descriptions apart to make it easy to construct the CDDL equivalent, andG replace the matched record description with an %INCLUDE directive from   the dictionary. 	 .end_text 
 .end_frame   .major .clear/window=1/start=4,1  .text/window=1/start=4,2" The Strengths of VAX SCAN include:        o A Very High Level Language-     o Powerful Operators for Pattern Matching "     o Common Language Environment 6 	+ you can call SCAN routines from other VAX languagesA 	+ you can call routines written in other VAX languages from SCAN 9 	+ you can call RTL and System Service routines from SCAN       o VAX DEBUG understands SCAN4     o VAX Language Sensitive Editor understands SCAN6     o Fully supported by DIGITAL on all VAX processors     o Optimizing Compiler 	 .end_text 
 .end_frame   .clear/start=4,1 .text/start=4,2 I These strengths make SCAN an ideal language for writing applications that  need to   '      o filter unwanted text from a file ,      o convert text from one form to another+      o extract text from a file or a string 3      o preprocess extensions to a computer language .      o parse the syntax of a computer language        & much more... 	 .end_text 
 .end_frame .text/start=15,2F The other parts of this demo cover the SCAN language in greater detailI including the pattern matching constructs in the language, a special SCAN C data type called a tree, several applications written in SCAN, and  " information for ordering VAX SCAN.	 .end_text . .label/start=20,center/reverse End of Overview
 .end_frame   .end_script 