This document provides an introduction to computer programming and programming languages. It discusses what programming is, the history and evolution of programming languages from machine languages to higher-level languages. It describes assembly languages, third-generation languages like Java and C++, fourth-generation languages, and debates the existence of fifth-generation languages. The document also discusses Java in more detail, including its history, editions, features, environment, and common misconceptions. It provides an example of a simple "Hello World" Java program.
1. Computer Programming
Chapter 1 : Introduction
Atit Patumvan
Faculty of Management and Information Sciences
Naresuan University
2. 2
What is Programming?
• Computers are programmed to perform tasks
• Different tasks = different programs
• Program
• Sequence of basic operations executed in
succession
• Contains instruction sequences for all tasks it can
execute
• Sophisticated programs require teams of highly
skilled programmers and other professionals
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
3. 3
History Timeline
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
4. 4
The Evolution of Programming Languages
• To build programs, people use languages that are
similar to human language. The results are
translated into machine code, which computers
understand.
• Programming languages fall into three broad
categories:
• Machine languages
• Assembly languages
• Higher-level
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
5. 5
Assembly Languages
• Assembly languages (second-generation
languages) are only somewhat easier to work with
than machine languages.
• To create programs in assembly language,
developers use cryptic English-like phrases to
represent strings of numbers.
• The code is then translated into object code, using a
translator called an assembler.
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
6. 6
Assembly Languages
Assembly Code
Assembler
Assembly Code
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
7. 7
Higher-Level Languages
• Higher-level languages are more powerful than
assembly language and allow the programmer to
work in a more English-like environment.
• Higher-level programming languages are divided
into three "generations," each more powerful than
the last:
• Third-generation languages
• Fourth-generation languages
• Fifth-generation languages
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
8. 8
Third-generation languages
• Third-generation languages (3GLs) are the first to
use true English-like phrasing, making them easier
to ! use than previous languages.
• 3GLs are portable, meaning the object code created
for one type of system can be translated for use on
a different type of system.
• The following languages are 3GLs
FORTAN BASIC PHP
C Java JavaScript
COBOL Pascal Ruby
C++ C# Python
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
9. 9
A Typical Program Development Environment
Edit Program is created in the editor and stored on disk
Preprocess Preprocessor program processes the code
Compile Compiler creates object code and stores it on disk.
Link Linker links the object code with the libraries
Load Loader puts program in memory
Execute CPU takes each instruction and executes it
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
10. 10
Fourth-Generation Languages
• Fourth-generation languages (4GLs) are even
easier to use than 3GLs.
• 4GLs may use a text-based environment (like a
3GL) or may allow the programmer to work in a
visual environment, using graphical tools.
• The following languages are 4GLs:
Visual Basic
Magic
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
11. 11
Fifth-Generation Languages
• Fifth-generation languages (5GLs) are an issue of
debate in the programming community – some
programmers !cannot agree that they even exist.
• These high-level languages would use artificial
intelligence to create software, making 5GLs
extremely difficult to develop.
• Solve problems using constraints rather than
algorithms, used in Artificial Intelligence
Prolog
CLIPs
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
12. 12
History of Java Language
• JDK 1.0 (January 23, 1996) • Java SE 7 (July 7, 2011)
• JDK 1.1 (February 19, 1997) • Java SE 8 (expected in summer
2013)
• J2SE 1.2 (December 8, 1998)
• J2SE 1.3 (May 8, 2000)
• J2SE 1.4 (February 6, 2002)
• J2SE 5.0 (September 30, 2004)
• Java SE 6 (December 11, 2006)
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
13. 13
Java Editions
• J2ME (Micro Edition) : Used to create programs
that run on small handheld devices, such as phones,
PDAs (personal digital assistants), and appliances.
• J2SE (Standard Edition) : Used primarily to create
programs for desktop computers or for many
computers too large for J2ME and too small for
J2EE.
• J2EE (Enterprise Edition) : Used to create very
large programs that run on servers managing heavy
traffic and complicated transactions. These
programs are the backbone of many online services,
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
14. 14
Common Misconceptions About Java
• Java is an extension of programmer
• Java is an easy programming to learn
• Java is an easy environment in which to program
• Java will become a universal programming for all
platforms
• Java is just another programming language
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
15. 15
Common Misconceptions About Java
• Java is interpreted, so it is too slow for serious
applications on a specific platform.
• All Java program run inside a Web pages.
• Java applets are a major security risk.
• JavaScript is a simpler version of Java
• You should use Java instead of Perl for CGI scripting
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
16. 16
Common Misconceptions About Java
• Java will revolutionize client-server computing.
• Java will allow the component-based model of
computing to take off
• With Java, I can replace my computer with a $500
“Internet appliance”
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
17. 17
The Java programming environment
• Compared to C++: no header files, macros, pointers
and references, unions, operator overloading,
templates, etc.
• Object-orientation: Classes + Inheritance
• Distributed: RMI, Servlet, Distributed object
programming.
• Robust: Strong typing + no pointer + garbage
collection
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
18. 18
The Java programming environment
• Secure: Type-safety and access control
• Architecture neutral: architecture neutral
representation
• Portable
• Interpreted
• High performance through Just in time compilation
and runtime modification of code
• Multi-threaded
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
19. 19
Java Features
• Well defined primitive data types: int, float, double,
char, etc.
• int 4 bytes [–2,147,648, 2,147,483,647]
• Control statements similar to C++: if-then-else,
switch, while, for
• Interfaces
• Exceptions
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
20. 20
Java Features
• Concurrency
• Packages
• Name spaces
• Reflection
• Applet model
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
21. 21
The Java programming environment
• Java programming language specification
• Syntax of Java programs
• Defines different constructs and their semantics
• Java byte code: Intermediate representation for
Java programs
• Java compiler: Transform Java programs into Java
byte code
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
22. 22
The Java programming environment
• Java interpreter: Read programs written in Java
byte code and execute them
• Java virtual machine: Runtime system that
provides various services to running programs
• Java programming environment: Set of libraries
that provide services such as GUI, data
structures,etc.
• Java enabled browsers: Browsers that include a
JVM + ability to load programs from remote hosts
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
23. 23
The Java Virtual Machine
• The heart of the Java Platform is the concept of a
"virtual machine" that executes Java bytecode
programs.
• Sits between the Java program and the machine it is
running on.
• Offers the program an “abstract computer” that
executes the Java code
• virtual machine isn't running on a CPU - it is being
emulated on the CPU of the host machine.
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
24. 24
How are Java programs written?
HelloWorld.java Compiler
01: public class HelloWorld {
02: javac HelloWorld.java
03: public static void main(String[] args) {
04: System.out.println("Hello, World!");
05: }
06: }
HelloWorld.class (Java bytescodes)
01: ????1"
02: @
Hello, World! 03:
init>()VCodeLineNumberTableLocalVariableTabl
ethis LMidterm;main([Ljava/lang/
String;)Vargs[Ljava/lang/String;
Interpreter
java HelloWorld
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
25. 25
Write once, run any Where
HelloWorld.java
01: public class HelloWorld {
Compiler
02:
03: public static void main(String[] args) {
javac HelloWorld.java
04: System.out.println("Hello, World!");
05: }
06: }
HelloWorld.class
HelloWorld.class
Interpreter Interpreter Interpreter
Java API
Java Virtual Machine
Hardware-Based Platform
Win32 Linux MacOS
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
26. 26
How Will Java Change Your Life?
• Get started quickly • Write once, run any
where
• Write less code
• Distribute software
• Write better code more easily
• Develop program
more quickly
• Avoid platform
dependencies with
100% pure Java
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
27. 27
Analyzing Your First Program
01: package com.patumvan.atit.courses.compro.ch01.hello;
02:
03: public class HelloPrinter {
04:
05: public static void main(String[] args) {
06: System.out.println("Hello, World!");
07: }
08: }
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
28. 28
Syntax Errors
• Caused when the compiler cannot recognize a
statement.
• Are violations of the language
• The compiler normally issues an error message to
help the programmer locate and fix it
• Also called compile errors or compile-time errors
01: public class Hello {
02: pooblic static void main(String[] args) {
03: System.owt.println("Hello, world!")_
04: }
05: }
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction
29. 29
Run-time Errors
• Other major kind of error you’ll see
• Happens when a program is running
• We will talk more about these later
• The compiler cannot identify these errors at compile
time.
Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Computer Programming, Chapter 1 : Introduction