Language Evaluation Criteria

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

give the definition of orthogonality

A relatively small number of primitives constructs can be combined in a small # of ways to build the central and data structures of a lang

From the criteria that we can use to assess programming languages, which of the following characteristics influences reliability: Orthogonality Syntax design Expressivity Restricted aliasing Simplicity Data types Support for abstraction Type checking Exception handling

All of them

what is expressivitity

Convenient ways of specifying computations for instance count = count + 1 count +=1 count++ ++count

T/F imperative langs don't work well with von neumann arch

F, imperative languages work very well with von neumann arch

T/F it is better to have a large number of primitive constructs and a large number of ways to combine them

F, it is better to have a small number of constructs and a small constitent set of rules for combining them (orthognality)

T/F orthogonality is not closely related to simplicity in that the more orthogonal the design of the language the fewer exceptions the language rules require

F, it is closely related to simplicity

T/F the von neuman machine is good for parallel computation

F, it is good for serial computation

T/F serial languages are mainly used for parallel computation

F, serial computation

t/f when it comes to wrtiteability a large number of primitives is always better than a small set of primitives and a consistent set of rules for combining them

F, the opposite is true here

T/F before 1970 software fdevelopment was mainly thought of in terms of maintaniblity

F: Writing code

T/F readability is not considered in terms of the problem domain? Give an example to support your answer

F: it should be considered in the context of the problem domain An example would be someone writing a program and using language that was not suited for the program. The code will look contorted and mangled, very difficult to read.

what is readability

How easily a lang can be read

what are the 4 categories prog langs are often put in

Imperative functional Logic object oriented

What is the von Neumann bottleneck?

It is a limitation on throughput caused by standard computer arch

DESCRIBE MICROSOFT .NET

Microsoft .NET - A large and elaborate collection of software development tools (C++, C#, J#, Jscript, Visual BASIC).

which of the following are true about true interpretation No translation necessary, interprets on the fly fast execution requires more space becoming popular lisp

No translation necessary, interprets on the fly slow execution**** requires more space becoming rare**** lisp

Describe in greater detail what orthogonality in a programming language means

Orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language. Furthermore, every possible combination of primitives is legal and meaningful.

Give two examples of syntax design that can effect readability

Special words: for example being able to close a group with different special words such as end loop or end if can help with readability vs just closing with a brace form and meaning: when you write a statement so that its appearance correlates with its purpose you greatly increase readability. An example of where this is perhaps broken is static in C, it has two different meanings depending on whether it appears inside of a function vs outside of it. one of the biggest complaints about shell command is that there appearance doesn't always suggest their purpose, for instance what does the command grep do?

T/F feature multiplicity can negatively affect readability

T

T/F maintainability is influenced largely by readability

T

T/F maintancence is correlated with cost

T

T/F multi-core computer and symmetric multiprocessing is good for serial and parallel computation

T

T/F object oriented languages are closely related to imperative ones

T

T/F the computer Hardware/Software is very influential in determining what lang should be used

T

T/F with the von neumann arch data and instructions must be sent from memory to cpu and back to memory

T

T/F: A language with a large number of basic constructs is more difficult to learn than one with a smaller number

T

T/F: to much orthoganlality can be bad for wrtieablity

T

T/F writeabliity must be considered in terms of the problem domain

T, Thins about using C vs VB to create a UI

T/F in function languages should work well with with parallel arch

T, but in reality little progress has been made

T/F functional languages such as lisp are considered to be the most simplistic. If so why?

T, it is because that can accomplish everything with a single construct, the function call, which can then be combined with other function calls.

T/F: readability problems occur whenever the program's author has learned a different subset from that subset with which the reader is familiar

T: When dealing with large programming languages the user often learns a subset of the language, this often times used to excuse the large number of constructs the language may be using, but this is not a valid excuse.

how would you draw the Hybrid skeleton

Test yourself on this!!!!!!!

can you draw the complete skeleton of the compiler

Test yourself on this!!!!!!!! It will be asked on the test

what is the solution to the von neumann bottleneck

The solution to this bottleneck is often given to be the change in computer arch. Some proposed solutions include caching and multi threading

Give an example of why data types help with readability

Think about if there was no Boolean data type

what is operator overloading

This is when a single operator symbol has more than one meaning, for example we could overload the + operator in a class like string so that we can concatenate two strings by just using +

what is feature multiplicity

This is when there is more than one way to accomplish an operation in a program, for example in java a user can increment a simple integer variable in 4 different ways count = count + 1 count += 1 count++ ++count

Concerning programming what does orthognality mean

This simply means that I can change A without affecting B, like a radio changing the station does affect the volume and vice verssa

what is hybrid implementation here

a combination of compiler type and interpreter type implementations

what is a procedural programming lang vs a non procedural one

a procedural programming lang specifies the order of execution whereas a non procedural one does not

what is a multi-core computer

a processor with multiple execution units on the same chips

what is a symmetric multiprocessing unit

a symetric

Which lang. uses hybrid approach

ask the professor

can you build a language directly on top of machine language?

ask the proff

Why does iteration work well on von Newmann machine

because it doesn't have the same overhead as recursion

GIve a reason why we use imperative lalnguages

because we use von neumann machines

can you draw the basics of the von neumann arch

draw the picture

Why is C++ dangerous

exposes pointers no bounds checking

what is abstraction

hiding away of the complexities so that whats left is the most simplistic form of the object

programming languages are often categorized into what 4 bins

imperative logic functional object oriented

which of the programming categories are process oriented

imperative, functional, logic

what 3 of the 4 programming language catagories fall under procedural

imperative, functional, object oriented

what is a what is von Neumann machine

it is a computer architecture design that consists of the ALU, memory unit, registers and inputs. with the von neuman arch programs and data are held in memory

after drawing the skeleton of the compiler test yourself on wehter you know each part

lexical analyzer gathers the characters of the source program into lexical units lexical unit identifier, special words, operators, and punctuation symbols symbol table a database containing type and attribute info of each user defined name in the prog syntax analyzer takes the lexical units from lexical analyzer and use them to construct parse trees parse tree represents the syntatic structure of the program sematntics analyzer produces a program in a diffrnt langauge ata n intermediate level between source prog . and machine lang. optimization makes the program smaller, faster, or both code generator translates the intermediate code into machine language

what programming category falls under non procedural

logic

in the late 1970's the software life cycle was developed and codding was given a smaller rode whereas ________ was recognized as a large part of the cycle particularly in terms of cost

maintainability

what are the main features of a functional lang (LISP)

no variables symbolic data: atom and list recursion

which of the programming categories are data oriented

object oriented

what are primitives in programming languages

primitives are basic operations that are supported by the programming language. A programmer can combine primitives to make to make more complex operations like functions or procedures.

which is probably the best lang out write now for write-ability

python

what are the 4 criteria most computer scientist agree are important

readability, write ability, reliability, and cost

name a design trade off when it comes to programming languages

reliability vs cost write ability vs readability flexibility vs safety

tell me 4 things about a logic based programming language

rule based rules are specified in no particular order it has data which consists of a fact and rule control: inferencing engine

von neumann arch supports what type of computation

serial computation

multi core computers and symmetric multiprocessing support what types of computation

serial computation and parallel computation

From the criteria that we can use to assess programming languages, what 4 o the following charactersitics influences readability: Orthogonality Syntax design Expressivity Restricted aliasing Simplicity Data types Support for abstraction Type checking Exception handling

simplicity Orthognality data types syntax design

From the criteria that we can use to assess programming languages, what 6 of the following characteristics influences write-ability: Orthogonality Syntax design Expressivity Restricted aliasing Simplicity Data types Support for abstraction Type checking Exception handling

simplicity Orthogonality Data types syntax design support for abstraction expressivity

what is smp

smp stands for symmetric multiprocessing and is a computer system with multiple identical processes that share memory and connect via a bus

what is throughput

the amount of information a system can process in a given amount of time

how does execution of machine code occur with von neumann arch

this occurs in a fetch and execute cycle

what does compilation do

translates high level programs to machine code

give 3 essential features of imperative languages

variables, model memory cells assignment statements iteration works well with von neumann arch

what is reliability

when a program performs correctly under all conditions

whats the difference from processes oriented and data oriented

with process oriented the language revolves around processes and with data oriented the lang revolves around data

What is writablilty

writeablity is how easily a language can be written to create programs for a chosen problem domain


Ensembles d'études connexes

Module 16 - 17 (Building and Securing a Small Network)

View Set

Sayles Check your understanding (Chapter 17-21)

View Set

Life and Health Ch 7 Fed Tax Considerations and Retirement Plans

View Set

Physics and Technology for Future Presidents: Chapter 13

View Set

Cyber Literacy: It's a Big World

View Set