CPSC 3520 - DAY 1 JANUARY 11, 2018 ================================================================================ A Programming language is a notational system intended primarily to facilitate human-machine interaction. The notation is both human and machine-readable. A program is something that is produced by a programing language We study programming language concepts for many reasons, including: To become aware of language features or capabilites which could speed the development process To be able to intelligently choose an appropriate language. To be able to learn new languages more effectively. To understand the underlying implementation issues. To be able to modify or design new languages. To get credit for required college courses in Computer Engineering and Science. FORMAL APPROACHES ----------------- A formal and quantitative characterization of a programming language is based upon a formal language which itself is based upon a formal grammer. Denote this grammer G. SOFTWARE AND MOORE'S LAW ------------------------ Moore's law stated in 1965 by Gordon Moore, postulates a doubling in computer hardware performance (measured by component density of gates on a chip) roughly every 18 months. This translates into a factor of 100 every 10 years. While Moore's law is not a law of physics, it has been reasonably accurate in predicting combined computer processing, storage and communication capabilities for several decades. There does not appear to be a corollary to Moore's law for software.