CS 342 Self study questions on general issues, design, principles * Design ** What is the algebraic view of design? ** Take a sample program and design a simple user-interface *** What do you look for, how to start the design? *** Syntax *** Semantics *** Evaluate it according to language design principles, etc. * Principles ** What principles relate to the following? *** expressiveness *** efficiency *** aesthetics ** What are the most important principles? ** Make a chart as follows: principles on one axis, vs. examples (features) from CLU, Smalltalk, Scheme ** How do the principles relate to costs and benefits? ** Draw an implication graph: which principles imply the others e.g., regularity implies syntactic consistency ** What are the conflicts/tradeoffs among principles? * Features ** What features are the most important? ** What features are related to the folowing? *** naming *** abstraction *** expressing security constraints *** symbolic manipulation *** data abstraction *** prototyping, modification/reuse of designs and code *** object-oriented programming *** functional programming * Language Paradigms (frameworks, programming styles) ** What are the various language frameworks? ** What framework do you prefer and why *** for simulation? *** for database work? *** for numerical/scientific programming? ** Which language paradigm has the most potential for (eventually): *** putting programmers out of work? *** solving problems quickly? *** leading to code reuse? *** helping programmers write correct code? *** rapid prototyping? * Run-time data structures and algorithms (these are data abstractions, naturally) ** List some standard built-in types and describe their implementations. ** What is an activation record? ** How is the run-time stack organized for *** variable addressing (display, static chaining) *** procedure call/return, block entry/exit, non-local gotos *** closures ** What are the relative costs of using a display vs. static chaining? ** Heap storage: what are the algorithms for and advantages of *** garbage collection *** reference counting