----------------------------------------------------------------------------
COP3610 -- Exam #2 Review Notes				M. Schmalz   010325
----------------------------------------------------------------------------

This exam will cover three topics:

  1) Compilation and makefiles

  2) Overview of computer languages C, C++, Java

  3) Regular expressions

To study effectively, use the following outline, which is expressed
in terms of practice questions that can be answered from the book,
Web notes, and class notes.  Additionally, I have posted a practice
test on the Web page.  

COMPILATION AND MAKEFILES:

 1 - Know what a compiler does, basically how it transforms source 
     code into object code.

 2 - How does a linker connect the object code to libraries, and
     what UNIX command can be used for this?  Be prepared to give
     an example of the "ld" command on the test.

 3 - What is a makefile and what does it do?

     Give an example of a compiler command that is implemented in a
     makefile.  For example, you can put the command directly into
     a makefile, or you can use colon notation to link the
     object files into an executable after each object file is
     compiled.

     What are variables in UNIX, and how are they used in makefiles?
     Give an example of such usage in the C-shell.

     What are two advantages of makefiles?

COMPUTER LANGUAGES:

 4 - What are advantages and disadvantages of C, C++, and Java
     programming languages?

 5 - What is object-oriented programming (OOP), and why was it developed?

     What are the differences between implementations of OOP in C++ 
     versus Java?  (Limited polymorphism and no multiple inheritance in Java)
     Be prepared to draw a simple diagram that illustrates each of these
     differences.

     How is Java different from C?  (limited or no access to bare machine,
     friendlier syntax, object oriented, more communication and graphics
     routines, Java is interpreted to bytecode level then compiled whereas
     C is totally compiled).

 6 - What were the innovative features introduced by the C language?

     What changes were made to C to produce C++?


REGULAR EXPRESSIONS?

 8 - What is a regular expression?

 9 - What are the primary features of a regular expression?
	(operands = strings or variables, and primitive operators)

10 - Of what use is the range specifier in regular expressions?  Give
     an example of the use of the range specifier with the "ls" command.

11 - Given a directory listing or a simulated file containing text
     (this would be shown on the exam, if it is in a question), predict
     what will appear in the output of an ls or fgrep command given a
     regular expression that constrains the functionality of that
     command.

NOTE:  The exam questions will be adapted some from the questions
       listed above, and from the practice test.  There will also be
       some simple matching questions, to help you gain extra points.  

-EOF-