Upload
clarence-manning
View
219
Download
1
Tags:
Embed Size (px)
Citation preview
March 19, 2004 1 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Programming LanguagesProgramming Languages(ICE 1341)(ICE 1341)
Lecture #8Lecture #8 March 19, 2004
In-Young Koiko .AT. icu.ac.kr
Information and Communications University (ICU)
March 19, 2004 2 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Review of the Previous LectureReview of the Previous Lecture
Program BlocksProgram Blocks Scoping RulesScoping Rules
Static ScopingStatic Scoping Dynamic ScopingDynamic Scoping
Scoping IssuesScoping Issues Scope LifetimeScope Lifetime Reference EnvironmentsReference Environments Named ConstantsNamed Constants Variable InitializationVariable Initialization
March 19, 2004 3 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
The World Wide Web (WWW)The World Wide Web (WWW)
““Information Management: Information Management: A Proposal”, A Proposal”, Tim Berners-Tim Berners-LeeLee, , CERNCERN, March 1989, March 1989
A proposal to build a A proposal to build a global global hypertext systemhypertext system for CERNfor CERN
www.w3.org/History/1989/www.w3.org/History/1989/proposal.htmlproposal.html
The original proposal of the WWWThe original proposal of the WWW
March 19, 2004 4 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
WWW ConceptsWWW Concepts
HypertextHypertext
Universal ReadershipUniversal Readership
SearchingSearching Client-Server ModelClient-Server Model
FormatFormatNegotiationNegotiation• Image formatsImage formats• Text fontsText fonts• FramesFrames
www.w3.org/Talks/General/Concepts.htmlwww.w3.org/Talks/General/Concepts.html
March 19, 2004 5 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Languages for WWWLanguages for WWW
HTMLHTML (Hypertext Markup Language) (Hypertext Markup Language) Scripting Languages (e.g., Perl, JavaScript)Scripting Languages (e.g., Perl, JavaScript) XMLXML (Extended Markup Language) (Extended Markup Language) RDFRDF (Resource Description Framework) (Resource Description Framework) DAMLDAML (DARPA Agent Markup Language) (DARPA Agent Markup Language) SOAPSOAP (Simple Object Access Protocol) (Simple Object Access Protocol) WSDLWSDL (Web Services Description Language) (Web Services Description Language) WSFLWSFL (Web Services Flow Language) (Web Services Flow Language) ……
March 19, 2004 6 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Extended Markup Language (XML)Extended Markup Language (XML)
A flexible text format that is originally designed for A flexible text format that is originally designed for large-large-scale electronic publishing of documentsscale electronic publishing of documents
DDerived from SGML (Standard Generalized Markup erived from SGML (Standard Generalized Markup LanguageLanguage, , ISO 8879ISO 8879))
An An XML documentXML document is a is a hierarchical organizationhierarchical organization of one of one or more named elementsor more named elements An An elementelement is composed of an opening-tag, data (string or is composed of an opening-tag, data (string or
another element), and a closing-taganother element), and a closing-tag An An opening-tagopening-tag is an element name surrounded by ‘<’ and ‘>’ is an element name surrounded by ‘<’ and ‘>’ A A closing-tagclosing-tag is an element name surrounded by ‘<’ and ‘/>’ is an element name surrounded by ‘<’ and ‘/>’ An element may have zero or more attributesAn element may have zero or more attributes An An attributeattribute is a name-value pair that specifies a property of the is a name-value pair that specifies a property of the
elementelement
March 19, 2004 7 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
An XML Document ExampleAn XML Document Example
<class><class><name><name>Prog. Lang.Prog. Lang.</name></name><code><code>ICE1341ICE1341</code></code><students><students>
<student <student id=“20037001”id=“20037001”>> <name><name>Y.K. KoY.K. Ko</name></name> <bday><bday>820304820304</bday></bday></student></student><student <student id=“20037002”id=“20037002”>> <name><name>D.W. D.W.
KimKim</name></name> <bday><bday>830512830512</bday></bday></student></student>
</students></students></class></class>
An opening-tagAn opening-tag
A closing-tagA closing-tag
An elementAn element
An attributeAn attribute
The root elementThe root element
A valueA value
March 19, 2004 8 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
The XML GrammarThe XML Grammar
document ::= document ::= prologprolog elementelement MiscMisc** element ::= element ::= EmptyElemTagEmptyElemTag | | STagSTag contentcontent ETagETag EmptyElemTag ::= 'EmptyElemTag ::= '<<' ' NameName ( (SS AttributeAttribute)* )* SS? '? '/>/>'' STag ::= 'STag ::= '<<' ' NameName ( (SS AttributeAttribute)* )* SS? '? '>>'' content ::= content ::= CharDataCharData? ((? ((elementelement | | ReferenceReference | |
CDSectCDSect | | PIPI | | CommentComment) ) CharDataCharData?)*?)* ETag ::= 'ETag ::= '</</' ' NameName SS? '? '>>'' S ::= (S ::= (#x20 #x20 | | #x9#x9 | | #xD#xD | | #xA#xA)+)+ Attribute ::= Attribute ::= NameName EqEq AttValueAttValue Name ::= (Name ::= (LetterLetter | ' | '__' | '' | '::') (') (NameCharNameChar)*)* Comment ::= 'Comment ::= '<!--<!--' ((' ((CharChar - ' - '--') | ('') | ('--' (' (CharChar - ' - '--')))* '')))* '-->-->''
XML Spec: XML Spec: http://www.w3.org/TR/2004/REC-xml-20040204/http://www.w3.org/TR/2004/REC-xml-20040204/
March 19, 2004 9 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
An XML Document GrammarAn XML Document Grammar
<class><class><name><name>Prog. Lang.Prog. Lang.</name></name><code><code>ICE1341ICE1341</code></code><students><students>
<student <student id=“20037001”id=“20037001”>> <name><name>Y.K. KoY.K. Ko</name></name> <bday><bday>820304820304</bday></bday></student></student><student <student id=“20037002”id=“20037002”>> <name><name>D.W. D.W.
KimKim</name></name> <bday><bday>830512830512</bday></bday></student></student>
</students></students></class></class>
class class “<class>” node “</class> “<class>” node “</class>
node node name code students name code students
name name “<name>” string “</name>” “<name>” string “</name>”
code code “<code>” string “</code>” “<code>” string “</code>”
students students “<students>” student* “<students>” student* “</students>”“</students>”
student student “<student” S “id=\”” num “<student” S “id=\”” num “\”” S “/>” name birthday “\”” S “/>” name birthday “</student>”“</student>”
birthday birthday “<bday>” num “</bday>” “<bday>” num “</bday>”
March 19, 2004 10 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
XML Document ProcessXML Document Process
<class><class><name><name>Prog. Lang.Prog. Lang.</name></name><code><code>ICE1341ICE1341</code></code><students><students>
<student <student id=“20037001”id=“20037001”>> <name><name>Y.K. KoY.K. Ko</name></name> <bday><bday>820304820304</bday></bday></student></student><student <student id=“20037002”id=“20037002”>> <name><name>D.W. D.W.
KimKim</name></name> <bday><bday>830512830512</bday></bday></student></student>
</students></students></class></class>
DocumentDocument ElementElement (tagName=“class”) (tagName=“class”)
-- childNode(0)-- childNode(0) ElementElement (tagName=“name”, (tagName=“name”,
nodeValue=“Prog. Lang.”)nodeValue=“Prog. Lang.”) -- childNode(1) …-- childNode(1) … -- childNode(2)-- childNode(2) ElementElement (tagName=“students”) (tagName=“students”)
-- childNode(0)-- childNode(0) ElementElement (tagName=“student”, (tagName=“student”, attribute(0)=“id”:“20…”)attribute(0)=“id”:“20…”) -- childNode(0)-- childNode(0) ElementElement (tagName=“name”, (tagName=“name”,
nodeValue=“Y.K…”)nodeValue=“Y.K…”) -- childNode(1)-- childNode(1) ElementElement (tagName=“bday”, … (tagName=“bday”, …
DOM (Document Object Model)DOM (Document Object Model)
March 19, 2004 11 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
XML ProcessorsXML Processors
XML ParsersXML Parsers: read XML documents and : read XML documents and provide access to their content and structure via provide access to their content and structure via DOM (e.g., Xerces, Sun’s Java XML Parser)DOM (e.g., Xerces, Sun’s Java XML Parser)
Document Filtering (Validation)Document Filtering (Validation) Document Type Declaration (DTD)Document Type Declaration (DTD): a : a grammargrammar for for
a class of XML documents a class of XML documents XML Schema (XSD)XML Schema (XSD): a successor of DTD. : a successor of DTD.
Describes the structure of an XML documentDescribes the structure of an XML document XML PresentationXML Presentation
eXtensible Stylesheet Language (XSL)eXtensible Stylesheet Language (XSL): a : a language to define the transformation and language to define the transformation and presentation of an XML documentpresentation of an XML document
March 19, 2004 12 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
XML Processing StepsXML Processing Steps
XML XML DocumentDocument
DatabasesDatabases
XML ParserXML Parser
DTD/ DTD/ XMLSchemaXMLSchema
XSL XSL DescriptionDescription
XSL ProcessorXSL Processor
XML Grammar XML Grammar (Structure) Validation(Structure) Validation
classclass
namename codecode studentsstudents
Prog. LangProg. Lang ICE1341ICE1341 studentstudent studentstudent
namename bdaybday namename bdaybday
Y.K. KoY.K. Ko 820304820304 D.W. KimD.W. Kim 830512830512
DOM ObjectsDOM Objects
HTML HTML PresentationPresentation
March 19, 2004 13 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Related MaterialsRelated Materials
W3C’s XML Web Site: W3C’s XML Web Site: http://www.w3.org/XML/http://www.w3.org/XML/ XML Specification: http://www.w3.org/TR/2004/REC-XML Specification: http://www.w3.org/TR/2004/REC-
xml-20040204/xml-20040204/ XML Concepts: XML Concepts:
http://www.w3.org/Talks/General/Concepts.htmlhttp://www.w3.org/Talks/General/Concepts.html DTD Tutorial: http://www.w3schools.com/dtd/DTD Tutorial: http://www.w3schools.com/dtd/ XML Schema Tutorial: XML Schema Tutorial:
http://www.w3schools.com/schema/default.asphttp://www.w3schools.com/schema/default.asp W3C’s XSL Site: http://www.w3.org/Style/XSL/W3C’s XSL Site: http://www.w3.org/Style/XSL/ Other XML-related Notes: Other XML-related Notes:
http://www.w3.org/XML/notes.htmlhttp://www.w3.org/XML/notes.html
March 19, 2004 14 ICE 1341 – Programming Languages (Lecture #8) In-Young Ko
Term Project #1Term Project #1
Design a Design a structured programming languagestructured programming language that includes the that includes the following language componentsfollowing language components Type declaration statements for Type declaration statements for int, float, char, arrayint, float, char, array Operations: Operations: +, -, *, /, and, or, not+, -, *, /, and, or, not Assignment statementAssignment statement Conditional statement (Conditional statement (ifif statement) statement) Loop (Loop (whilewhile statement) statement) Program blocks (Program blocks (beginbegin … … endend))
Develop an Develop an XML-based syntaxXML-based syntax of the language of the language Write the Write the grammargrammar of the language in EBNF of the language in EBNF Write a Write a sample programsample program by using the language that you defined by using the language that you defined Display the sample program on MS Internet Explorer to validate Display the sample program on MS Internet Explorer to validate
its XML syntaxits XML syntax Explain the Explain the language design decisionslanguage design decisions such as application such as application
domains, and naming, binding, type compatibility, scoping rulesdomains, and naming, binding, type compatibility, scoping rules
Due by April 2ndDue by April 2nd