programming languages design considerations (qualities) readability –simplicity and clarity...

11
Languages Design Considerations (Qualities) • Readability Simplicity and Clarity – Orthogonality Control Statements Data Types and Structures Syntax considerations • Writability Simplicity and Orthogonality – Abstraction – Expressivity

Upload: easter-nash

Post on 13-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Programming Languages Design

Considerations (Qualities)

• Readability– Simplicity and Clarity– Orthogonality– Control Statements– Data Types and Structures– Syntax considerations

• Writability– Simplicity and Orthogonality– Abstraction– Expressivity

Page 2: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Programming Languages Design

Considerations (Qualities)

• Reliability – Type Checking– Exception Handling– Aliasing– Readability & Writability

Page 3: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Programming Languages Design

Considerations (Qualities)

• Cost– training– writing– compiling– executing– implementing– reliability– maintaining

Page 4: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Programming Languages Design

Considerations (Qualities)

• Binding– Language definition time– Language implementation time– Program writing time– Program compile– Program load time– Program run time

Page 5: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Practical Considerations

• Architecture• Contextual constraints• Virtual machines and interpreters• Standards• Legacy Systems

Page 6: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Architecture• Languages designed to match

architecture– Von Neumann– Exception: Lisp machines– RISC

Page 7: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Contextual Constraints• architecture• application area• operating system• network• programming community preferences

– general purpose vs special purpose– compiled vs interpreted

Page 8: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Virtual Machines & Interpreters

• compiler written for virtual machine– written only once

• interpreters for real machines• allows experimentation

– eliminates machine specific details

Page 9: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Standards• ANSI Cobol (1985)• ISO Fortran (1997)• ISO Prolog (1995)• ANSI/ISO C (1999)• ANSI Basic (1989)• ANSI/ISO Ada (1995)• ANSI Smalltalk (1998)• ISO Pascal (1990)

Page 10: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Legacy Systems• 90% programmer’s time

maintaining• backward compatibility necessary• ponderous• committee vs individual design

Page 11: Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures

Assignment• Be able to answer the review

questions on pages 33 & 34, particularly– 3,4,5,6,7,8,9,12,13,14,18,20,23,24,25

,26,27,32