1 Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section.

Slides:



Advertisements
Similar presentations
1 The C Language An International Standard CIS2450 Professional Aspect of Software Engineering.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Transition from C to C++ …and a Review of Basic Problem Solving.
CSE 341, Winter Type Systems Terms to learn about types: –Type –Type system –Statically typed language –Dynamically typed language –Type error –Strongly.
PZ05A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ05A - Abstract data types Programming Language Design.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
PZ07B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ07B - Basic statements Programming Language Design.
PZ06BX Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ06BX - Introduction to Smalltalk Programming Language.
Programming Languages Structure
PZ01BX Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01BX - Standardization, Internationalization Programming.
ECA 228 Internet/Intranet Design I Meta Tags & Directories.
Sophia Antipolis, September 2006 Multilinguality, localization and internationalization Miruna Bădescu Finsiel Romania.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CMSC CMSC 330: Organization of Programming Languages Instructor: Michael Lam (lam at cs) TA: Richard Johnson (rbjohns8 at cs) Introduction.
Week 4 Number Systems.
Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section.
CS 326 Programming Languages, Concepts and Implementation
CSC141 Introduction to Computer Programming
COP 4020 Programming Langauges Dr. Roy Levow –Office hours: M 5-6:30 – –
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
History of C 1950 – FORTRAN (Formula Translator) 1959 – COBOL (Common Business Oriented Language) 1971 – Pascal Between Ada.
CMSC CMSC 330: Organization of Programming Languages Instructor: Michael Lam (lam at cs)‏ TA: Aleks Aris (aris at cs)‏ Introduction.
Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures.
Oracle9i Database Administrator: Implementation and Administration 1 Chapter 14 Globalization Support in the Database.
PZ06C Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ06C - Polymorphism Programming Language Design and.
Polymorphism Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 7.3.
Week 7 Lecture 2 Globalization Support in the Database.
© 2001, Penn State University Encoding on the Internet Elizabeth J. Pyatt CETS.
Software Engineering Algorithms, Compilers, & Lifecycle.
Basic statements Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Abstract data types Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Binary Representation in Text
Binary Representation in Text
PROGRAMMING WITH C ++.
Chapter 7: User-Defined Functions II
Why study programming languages?
Type Checking Generalizes the concept of operands and operators to include subprograms and assignments Type checking is the activity of ensuring that the.
CS 326 Programming Languages, Concepts and Implementation
CSCI-235 Micro-Computer Applications
CS 326 Programming Languages, Concepts and Implementation
An Introduction to Programming
Types of Programming Languages
Type Systems Terms to learn about types: Related concepts: Type
PZ06C - Polymorphism Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 7.3 PZ06C.
PZ05A - Abstract data types
Polymorphism Polymorphism
Programming Languages 2nd edition Tucker and Noonan
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
High Level Programming Languages
Abstract data types Programming Language Design and Implementation
Introduction to Computer Programming
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Polymorphism Programming Language Design and Implementation
An Introduction to Programming
Programming Languages and Paradigms
Type Systems Terms to learn about types: Related concepts: Type
Polymorphism Programming Language Design and Implementation
Abstract data types Programming Language Design and Implementation
Introduction to Smalltalk
Polymorphism Programming Language Design and Implementation
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Basic statements Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Basic statements Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
PZ07B - Basic statements Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Polymorphism Programming Language Design and Implementation
Basic statements Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Presentation transcript:

1 Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section

2 Who defines a language? Is: I = 1 && | 4; legal in C? What is assigned to I if it is? 3 ways typically to answer this: 1. Read language manual (Problem: Can you find one?)  부정확 2. Read language standard (Problem: Have you ever seen it?)  BNF, Vienna definition language, 3. Write a program to see what happens. (Easy to do!)  C 의 표준은 CC (UNIX) Most do 3, but current compilers may not give correct answer

3 Creation of standards Language standards defined by national standards bodies: ISO - International Standards organization IEEE - Institute of Electrical and Electronics Engineers ANSI - American National Standards Institute  code, 언어, 통신규약, XML, 전자책, … All work in a similar way: 1. Working group of volunteers set up to define standard 2. Agree on features for new standard 3. Vote on standard 4. If approved by working group, submitted to parent organization for approval.

4 Creation of standards Standards in the US are voluntary: There is no federal standards-making organization. NIST - National Institute for Standards and Technology develops standards that are only required on federal agencies, not for commercial organizations. But: Consensus is the key to standards making: Contentious features often omitted to gain consensus Only vendors have a vested interest in the results Users don't care until standard approved, and then it is too late! 한국 ::: 표준연구소, 산업자원부, 정보통신부, 과학기술처

5 Standards conforming programs Standards define behavior for a standards conforming program - one that meets the rules of the language standard In general (except for Ada), behavior of non-conforming program is not specified, so any extensions to a standards conforming compiler may still be standards conforming, even though the program is not standards conforming. Standards supposed to be reviewed every 5 years Examples: FORTRAN 1966, 1977, 1990 Ada 1983, 1995 Not quite 5 years, but at least periodically

6 숙제 한글코드의 표준화 과정을 조사한다. 특히 Unicode 가 어떻게 표준화되 었는지 조사한다. 자판을 중심으로 표준화가 낳을 수 있는 문제점을 조사한다. 실제 우리 가 쓰는 자판은 최대한 글쇠가 엉키지 않게 만듦으로써 오히려 입력속도 가 느리다. 이에 따라 새로운 자판 ( 이름을 조사 ) 이 나왔지만 익숙하지 않 아서 아직 보급되지 않고 있다. 한글자판도 2 벌식과 3 벌식이 있는데 비 슷한 문제점이 있다.

7 When to standardize a language? Problem: When to standardize a language? If too late - many incompatible versions - FORTRAN in 1960s was already a de facto standard, but no two were the same If too early - no experience with language - Ada in 1983 had no running compilers Just right - Probably Pascal in 1983, although it is rapidly becoming a dead language Other languages: C in 1988 : ANSI C LISP in Way too late : common LISP De facto standards: ML - One major implementation - SML Smalltalk - none Prolog - none

8 Internationalization I18N issue - Internationalization - How to specify languages useful in a global economy? Characters used internationally: Single 8-bit byte; usual format today character values. A lot in 1963, but insufficient today ASCII is a 7 bit 128 character code What about other languages? Additional letters: German umlaut-ä, French accent-é, Scandanavian symbols-ö, Russian, other alphabets (Greek, Arabic, Hebrew), ideographs (Chinese), 한글 Unicode - 16 bit code allows for 65K symbols. 8-bit byte is insufficient

9 Internationalization (continued) I18N name avoids deciding between internationalization and internationalisation Some of the internationalization issues: What character codes to use? Collating sequences? - How do you alphabetize various languages? Dates? - What date is 10/12/01? Is it a date in October or December? Time? - How do you handle time zones, summer time in Europe, daylight savings time in US, Southern hemisphere is 6 months out of phase with northern hemisphere, Date to change from summer to standard time is not consistent. Currency? - How to handle dollars, pounds, marks, francs, euros, 원, etc.

10 Summary Language design today must: Allow program solution to match physical structure of problem Allow for world-wide use Be easy to prove solution correct Rest of course will work on these goals

11 Programming Environment The environments in which programs are created and tested Separate compilation –Co-development of any large program –Function prototypes, external variables(COMMON, extern), naming convention(_…), Scope rule (Pascal, C, Ada), inheritance (Ada, C++), polymorphism, overloaded (Ada 의 명칭 ) –Stub : a subprogram call made to a subprogram that has not yet been compiled –To provide information for separate compilation FOTRAN : COMMON <- redeclaration Compile 순서 관리 <- Ada. A library containing specifications –Consistency of the external data or subprograms Linking?

12 Programming Environment (cont.) Testing and debugging –Execution trace features (LISP, Prolog, … C debugger) Statements, variables –Breakpoints –Assertions Assert(X>0) % Exception handling