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

Who defines a language?

Embed Size (px)

DESCRIPTION

Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 1.3.3-1.3.4. Who defines a language?. Is: I = 1 && 2 + 3 | 4; legal in C? What is assigned to I if it is? - PowerPoint PPT Presentation

Citation preview

Page 1: Who defines a language?

Standardization, Internationalization

Programming Language Design and Implementation (4th Edition)by T. Pratt and M. Zelkowitz

Prentice Hall, 2001

Section 1.3.3-1.3.4

Page 2: Who defines a language?

2

Who defines a language?

Is: I = 1 && 2 + 3 | 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

Page 3: Who defines a language?

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, 전자책 , … WWW Consortium, EPC Global, …

SMTP(7bits) MIME(8bits) : Plain text, 음성 , 영상 , ..

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.

Page 4: Who defines a language?

4

Creation of standards

Standards in the US are voluntary: There is no federal standards-making organization. NIST - National Institute for Standards and Technolo

gy 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 i

t is too late! 한국 ::: 표준연구소 , 지경부 , 교과부

Page 5: Who defines a language?

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.– Java 와 관련된 MS 전략

Standards supposed to be reviewed every 5 years

Examples:– FORTRAN 1966, 1977, 1990, 1995, 2003– Ada 1983, 1995

Not quite 5 years, but at least periodically

Page 6: Who defines a language?

6

표준과 특허 De facto 표준 ISO 에서는 주로 특허로 제한된 기술은

표준으로 정하지 않음 국제표준에 따라 정해진 내용이 특허로

되면 심각한 법적 문제를 낳을 수 있음 특허에 의해 “ㅈㅈㅈ” -> “www” 로

고치지 못함 ::: 특허와 관련된 몇 사례 !!!

Page 7: Who defines a language?

7

숙제

한글코드의 표준화 과정을 조사한다 . 특히 Unicode 가 어떻게 표준화되었는지 조사한다 . 또 KS5601, ISo646, ISO2422, UTF8, UTF16은 무엇인가 ?

– 정희성 박사 특허 자판을 중심으로 표준화가 낳을 수 있는 문제점을 조사한다 . 실제

우리가 쓰는 자판은 최대한 글쇠가 엉키지 않게 만듦으로써 오히려 입력속도가 느리다 (QWERT). 이에 따라 새로운 자판 ( 이름을 조사 ) 이 나왔지만 익숙하지 않아서 아직 보급되지 않고 있다 . 한글자판도 2벌식과 3 벌식이 있는데 비슷한 문제점이 있다 .

현재 XML 을 이용하여 각 분야의 문서표준화가 진행되고 있다 . 그 예와 현재 진행상황을 설명하라 !! ( 예 , eBook, vXML, 전자상거래 … ), 한 분야만 잡아서 조사한다 .

핸드폰과 스마트폰에서 한글 문자를 입력하는 방법은 표준화되어 있는가 ? 현재 표준화 상황을 조사하라 .

C, C++, Pyton, PHP, HTML, XHTML 의 표준화 과정을 설명하라 .

Page 8: Who defines a language?

8

When to standardize a language?

Problem: When to standardize a language?– If too late - many incompatible versions - FORTRAN in 19

60s 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 1990 - Way too late : common LISP– De facto standards: ML - One major implementation - SML– Smalltalk - none– Prolog - none

Page 9: Who defines a language?

9

Internationalization

I18N issue - Internationalization - How to specify languages useful in a global economy?

Characters used internationally: – Single 8-bit byte; usual format today - 256 character va

lues. 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-é, Sc

andanavian symbols-ö,– Russian, other alphabets (Greek, Arabic, Hebrew), ideogr

aphs (Chinese), 한글– Unicode - 16 bit code allows for 65K symbols. 8-bit byte

is insufficient

Page 10: Who defines a language?

10

Internationalization (continued)

I18N name avoids deciding between internationalization and localization

Some of the internationalization issues: What character codes to use? Collating sequences? - How do you alphabetize variou

s languages? Dates? - What date is 10/12/01? Is it a date in Octo

ber 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.

XML 에서는 dublin core 를 사용

Page 11: Who defines a language?

11

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

Page 12: Who defines a language?

12

Programming Environment

The environments in which programs are created and tested

Separate compilation– Co-development of any large program– Function prototypes, external variables(COMMON, e

xtern), 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?

Page 13: Who defines a language?

13

Programming Environment (cont.)

Testing and debugging – Execution trace features (LISP, Prolog, … C

debugger)• Statements, variables

– Breakpoints– Assertions

• Assert(X>0)

% Exception handling