Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr....

42
Programming Programming Languages Languages compiled By Ergin TARI compiled By Ergin TARI

Transcript of Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr....

Page 1: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Programming LanguagesProgramming Languagescompiled By Ergin TARIcompiled By Ergin TARI

Page 2: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Programming Language Classification according to Programming Language Classification according to Dr.Dr. Deryck Brown, School of Computer and Math Deryck Brown, School of Computer and Math

Sciences Sciences The Robert Gordon UniversityThe Robert Gordon University

General General structured programming structured programming user defined data-types user defined data-types data abstraction data abstraction

Imperative Imperative procedural procedural assignment statementassignment statement

Declarative Declarative functional functional strict vs. lazy strict vs. lazy referential transparency referential transparency

Object-oriented Object-oriented single-inheritance single-inheritance multiple-inheritance multiple-inheritance

LogicLogic

Structured Programming

•An important methodology for dealing with complexity is structured programming•Complex tasks need to be broken down into simpler subtasks•Structured programming reduces complex problems to collections of simple, interconnected modules•It is up to the programmer to implement structured programming

Page 3: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

High Level Programming Languages according to High Level Programming Languages according to Deryck Brown from School of Computer and Math Deryck Brown from School of Computer and Math

Sciences, The Robert Gordon UniversitySciences, The Robert Gordon University

Most high-level programming languages can be Most high-level programming languages can be categorizecategorizedd into one of three main categories: into one of three main categories:

procedural Languages( Fortran, Basic, COBOL and procedural Languages( Fortran, Basic, COBOL and Pascal) Pascal)

Hybrid Languages(such as C++).Hybrid Languages(such as C++).Object-Oriented Languages (Smalltalk, Effiel ).Object-Oriented Languages (Smalltalk, Effiel ).

Example of Procedural languages is FORTRAN, which Example of Procedural languages is FORTRAN, which was designed to perform mathematical calculations that was designed to perform mathematical calculations that used standard algebraic formulas. used standard algebraic formulas.

Page 4: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

High Level Programming Languages according to High Level Programming Languages according to Deryck Brown from School of Computer and Math Deryck Brown from School of Computer and Math

Sciences, The Robert Gordon UniversitySciences, The Robert Gordon University

The main features of Procedural Languages are:The main features of Procedural Languages are:When computers were developed in the 1940’s mathematicians for military When computers were developed in the 1940’s mathematicians for military purposes-for computing bomb trajectories and decoding enemy ordered and purposes-for computing bomb trajectories and decoding enemy ordered and diplomatic transmissions used them. This reality was reflected in the diplomatic transmissions used them. This reality was reflected in the development of “procedural algorithms”. Most data types and functions was build development of “procedural algorithms”. Most data types and functions was build to be used in scientific computation. to be used in scientific computation. Accordingly, we had the following features for procedural algorithms: Accordingly, we had the following features for procedural algorithms: All user and system interfaces are built into the compiler. An example of such All user and system interfaces are built into the compiler. An example of such functions are, mathematical operations, I/O interfaces, service libraries…etc. As functions are, mathematical operations, I/O interfaces, service libraries…etc. As such, it was impossible for users to develop their own interfaces. Only compiled such, it was impossible for users to develop their own interfaces. Only compiled functions would be used and users were restricted to usefunctions would be used and users were restricted to use ready made facilities ready made facilities without being able to add (include) their own facilities. without being able to add (include) their own facilities. All data types are predefined in the compiler. The user can define and use only All data types are predefined in the compiler. The user can define and use only those types of data such as Real, Integer, Float, Character…etc Each data type those types of data such as Real, Integer, Float, Character…etc Each data type is associated with one or more operations. Thus it operations on data are is associated with one or more operations. Thus it operations on data are restricts by data type. restricts by data type. Data defined to Data defined to ffunctions, subroutines and procedures should be available to all unctions, subroutines and procedures should be available to all parts of the program. The main program (which calls these procedures) should parts of the program. The main program (which calls these procedures) should have all data types and parameters defined in all its subroutines or procedures. have all data types and parameters defined in all its subroutines or procedures. This type of data specification requires more memory and adds many This type of data specification requires more memory and adds many complications to the program interfaces (performed in the link stage).complications to the program interfaces (performed in the link stage).

Page 5: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

High Level Programming Languages according to High Level Programming Languages according to Deryck Brown from School of Computer and Math Deryck Brown from School of Computer and Math

Sciences, The Robert Gordon UniversitySciences, The Robert Gordon University

The main features of Object Oriented Languages (O.O.L) areThe main features of Object Oriented Languages (O.O.L) are: : The idea of having all function definition performed by the compiler is The idea of having all function definition performed by the compiler is no longer accepted in today’s programming requirements. We live in a no longer accepted in today’s programming requirements. We live in a world full of world full of objectsobjects-planes, trains, cars, telephones, books, -planes, trains, cars, telephones, books, computers, etc. Procedural programming languages does not reflect computers, etc. Procedural programming languages does not reflect this at all. As this at all. As it isit is mentioned earlier it mostly satisfy the scientific mentioned earlier it mostly satisfy the scientific requirements rather than other life requirements. To solve the requirements rather than other life requirements. To solve the procedural programming problems, OOL introduced three concepts:procedural programming problems, OOL introduced three concepts:

Abstract Data Types(Classes)Abstract Data Types(Classes) Encapsulation.Encapsulation. Inheritance.Inheritance. Polymorphism.Polymorphism.

OOL has no default data types. Users have to construct their own OOL has no default data types. Users have to construct their own ""Abstract Abstract data type" and use them together with their associated data type" and use them together with their associated operations. operations.

Page 6: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

High Level Programming Languages according to High Level Programming Languages according to Deryck Brown from School of Computer and Math Deryck Brown from School of Computer and Math

Sciences, The Robert Gordon UniversitySciences, The Robert Gordon University

Hybrid programming languages:Hybrid programming languages: Example for this style of programming is C++. Hybrid Example for this style of programming is C++. Hybrid

languages allow the use of both procedural and OOL. It languages allow the use of both procedural and OOL. It thus has some basic data type, which can be used to thus has some basic data type, which can be used to create procedural programming. It also has the ability to create procedural programming. It also has the ability to include Abstract data types to be used as OOL.include Abstract data types to be used as OOL.

Mostly, Hybrid programming Languages are Mostly, Hybrid programming Languages are developments of structural languages. This is indeed developments of structural languages. This is indeed true for C++, which is based on the structural language true for C++, which is based on the structural language C. All basic properties of OOL such as Inheritance and C. All basic properties of OOL such as Inheritance and Polymorphism are also applied to Hybrid languages.Polymorphism are also applied to Hybrid languages.

Page 7: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Programming Languages according to Programming Languages according to Kim Kim Taylor from Griffith University, AustraliaTaylor from Griffith University, Australia

Structural Programming LanguagesStructural Programming Languages Java, C, C++, Visual Basic, Pascal, Turbo Pascal, Java, C, C++, Visual Basic, Pascal, Turbo Pascal,

Modula-2Modula-2 Non-Structural LanguagesNon-Structural Languages

FortranFortran Scripting LanguagesScripting Languages

Bourne Shell, C Shell, PerlBourne Shell, C Shell, Perl Functional Programming LanguagesFunctional Programming Languages

Prolog, LISP, HopeProlog, LISP, Hope Query LanguagesQuery Languages

MSQL Lite, SQL, DBQ/AGMSQL Lite, SQL, DBQ/AG

Page 8: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Programming Languages according to Programming Languages according to Bryan Bryan Pfaffenberger, author of  ”Computers in Pfaffenberger, author of  ”Computers in

Your Future 2003“ Your Future 2003“  First-Generation Languages: 1s and 0sFirst-Generation Languages: 1s and 0s Second-Generation Languages: A Little EasierSecond-Generation Languages: A Little Easier Third-Generation Languages: Programming Third-Generation Languages: Programming

Comes of AgeComes of Age Fourth-Generation Languages: Getting Away Fourth-Generation Languages: Getting Away

from Procedurefrom Procedure Object-Oriented Programming: A Revolution in Object-Oriented Programming: A Revolution in

the Making? the Making? A Guide to Programming Languages: One Size A Guide to Programming Languages: One Size

Doesn’t Fit AllDoesn’t Fit All

Page 9: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

First-Generation Languages: First-Generation Languages: 1s and 0s1s and 0s

TerminologyTerminology Machine LanguageMachine Language Machine-dependentMachine-dependent

Page 10: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Second-Generation Second-Generation Languages: A Little EasierLanguages: A Little Easier

TerminologyTerminology Assembly LanguageAssembly Language Low-level LanguageLow-level Language MnemonicsMnemonics Source CodeSource Code

Page 11: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Third-Generation LanguagesThird-Generation Languages (3GL) (3GL): : Programming Comes of AgeProgramming Comes of Age

Still procedural but high level Still procedural but high level languageslanguages

Compilers and InterpretersCompilers and Interpreters Spaghetti Code and the Great Spaghetti Code and the Great

Software CrisisSoftware Crisis Structured Programming LanguagesStructured Programming Languages

(late 1960s)(late 1960s) Modular Programming LanguagesModular Programming Languages

(1970s)(1970s)

Page 12: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Fourth-Generation LanguagesFourth-Generation Languages (4GL)(4GL): Getting Away from Procedure: Getting Away from Procedure

TerminologyTerminology Report GeneratorsReport Generators Query LanguagesQuery Languages Structured Query Language (SQL)Structured Query Language (SQL) Natural LanguageNatural Language

no

np

roce

du

ral

Page 13: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Object-Oriented ProgrammingObject-Oriented Programming (OOP) (OOP): : A Revolution in the Making?A Revolution in the Making?

Eliminating the Program Versus Data Eliminating the Program Versus Data DiscriminationDiscrimination

What Is An Object?What Is An Object?A unit of computer information that contains data as well as A unit of computer information that contains data as well as

procedures and operationsprocedures and operations

ClassesClassesCategory of objectsCategory of objects

OOP Advantages:•Generic objects can be reused in many applications•This reuse of software encourages a building block approach to software development, using standardized parts•Software development is much faster•Software is easier to understand, debug and maintain

Page 14: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Object-Oriented Programming: Object-Oriented Programming: A Revolution in the Making? A Revolution in the Making?

cont.cont. InheritanceInheritanceObjects capacity to “pass on” its Objects capacity to “pass on” its

characteristics to its “children” or subclasses.characteristics to its “children” or subclasses.

Rapid Application Development Rapid Application Development (RAD) (RAD)

Middleware (Objects Across Middleware (Objects Across the Enterprise)the Enterprise)

How programs can find objects and queryHow programs can find objects and query

OOP Disadvantages:•Difficult to learn for programmers used to procedural languages•A new way of thinking is required•Objects reduce portability of code

Page 15: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

A Guide to Programming A Guide to Programming Languages: One Size Doesn’t Languages: One Size Doesn’t

Fit AllFit All COBOL and Fortran: For Some People, COBOL and Fortran: For Some People,

Retro Rules!Retro Rules! COBOLCOBOL FortranFortran

Page 16: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

A Guide to Programming A Guide to Programming Languages: One Size Doesn’t Languages: One Size Doesn’t

Fit All cont.Fit All cont. Structured and Modular LanguagesStructured and Modular Languages

AdaAda Visual BasicVisual Basic

Page 17: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

A Guide to Programming A Guide to Programming Languages: One Size Doesn’t Languages: One Size Doesn’t

Fit All cont.Fit All cont. Object-Oriented (OO) Object-Oriented (OO)

LanguagesLanguages SmalltalkSmalltalk C and C++C and C++ JavaJava JavaScript (ECMAScript)JavaScript (ECMAScript)

#include <stdio.h> main(){ printf("Hello, world\n"); return 0; }

#include <iostream.h>

main()

{ cout << "Hello, world\n";

return 0; }

public class hello { public static void main(String args[]) { System.out.println("Hello, world"); System.exit(0); } }

<script language=javascript type="text/javascript">document.write ("Hello, World!")</script>

Page 18: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

JavaJavaThe C and C++ versions are similar, but Java is noticeably different. Some of the The C and C++ versions are similar, but Java is noticeably different. Some of the differences are as follows. differences are as follows.

Java has no header files.Java has no header files. Java "knows" about certain system features like the String class and the output Java "knows" about certain system features like the String class and the output

stream System.out. stream System.out. There are no global functions as in C and C++, but instead every function must be a There are no global functions as in C and C++, but instead every function must be a

part (a "method") of some class. This includes main(). part (a "method") of some class. This includes main(). main() is a method ("member function" in C++) of the hello class, but it does not main() is a method ("member function" in C++) of the hello class, but it does not

operate specifically on object instances of that class, and instead is what is called a operate specifically on object instances of that class, and instead is what is called a "class method" that is part of the class for packaging purposes. In C++ the equivalent "class method" that is part of the class for packaging purposes. In C++ the equivalent would be a static member function. would be a static member function.

The hello class must be defined in a file called hello.java. There is no equivalent The hello class must be defined in a file called hello.java. There is no equivalent requirement in C or C++. requirement in C or C++.

To pass out an exit status from the program, Java uses System.exit(n). In C and C+To pass out an exit status from the program, Java uses System.exit(n). In C and C++, there is the library function exit(), or one can return a value from main(). +, there is the library function exit(), or one can return a value from main().

The Java approach is different from some other popular languages. Whether it is The Java approach is different from some other popular languages. Whether it is "right" is a somewhat pointless thing to argue about. For example, there are good "right" is a somewhat pointless thing to argue about. For example, there are good reasons for not having a programming language "know" about I/O facilities such as reasons for not having a programming language "know" about I/O facilities such as stream I/O, but also good reasons on the other side. stream I/O, but also good reasons on the other side.

Page 19: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

A Guide to Programming A Guide to Programming Languages: One Size Doesn’t Languages: One Size Doesn’t

Fit All cont.Fit All cont. PostScript and the Desktop Publishing PostScript and the Desktop Publishing

RevolutionRevolution

Page 20: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Introducing the Program Introducing the Program Development Life Cycle Development Life Cycle

(PDLC)(PDLC) Phase 1: Defining the ProblemPhase 1: Defining the Problem Phase 2: Designing the ProgPhase 2: Designing the Prog..

Top-Down Program DesignTop-Down Program Design Structured DesignStructured Design Developing an AlgorithmDeveloping an Algorithm Program Design ToolsProgram Design Tools

Phase 3: Coding the ProgramPhase 3: Coding the Program

Page 21: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Introducing the Program Introducing the Program Development Life Cycle Development Life Cycle

(PDLC) cont.(PDLC) cont. Phase 4: Testing and Debugging the Phase 4: Testing and Debugging the

Program Program Phase 5: Formalizing the SolutionPhase 5: Formalizing the Solution Phase 6: Implementing andPhase 6: Implementing and

Maintaining Maintaining tthe Programhe Program

Page 22: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Early scripting languages ran commands in Early scripting languages ran commands in “batches” (e.g. DOS .BAT files, Unix shells: “batches” (e.g. DOS .BAT files, Unix shells: shsh, , cshcsh))

More recent languages are just high-level, More recent languages are just high-level, practical programming languagespractical programming languages

Scripting languages are the “bread and butter” Scripting languages are the “bread and butter” tools of network, system and web tools of network, system and web administratorsadministrators

Scripting Languages from Les LaCroixLes LaCroix

Page 23: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages(common features)

TypelessTypeless Similar available basic data types:Similar available basic data types:

numbersnumbers stringsstrings arraysarrays associative arrays (a.k.a. hashes or associative arrays (a.k.a. hashes or

dictionaries)dictionaries)

Page 24: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages(common features)

Dynamically sized structures (strings, Dynamically sized structures (strings, arrays, hashes)arrays, hashes)

C-like “structs” emulated with hashesC-like “structs” emulated with hashes Classes, objects, methodsClasses, objects, methods Can be thought of as interpreted Can be thought of as interpreted

languages (as opposed to compiled)languages (as opposed to compiled) PortabilityPortability

Page 25: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages(common features)

Extensibility in CExtensibility in C Common extensions:Common extensions:

file-level input/outputfile-level input/output math functionsmath functions command call-out (“system”, pipes)command call-out (“system”, pipes) network service connectivity (e.g. network service connectivity (e.g.

databases, LDAP, IMAP)databases, LDAP, IMAP) CGI parsing, web server integrationCGI parsing, web server integration

Page 26: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages

They are good forThey are good for

Prototyping/Rapid developmentPrototyping/Rapid development Small programs (<100,000 lines)Small programs (<100,000 lines) Web developmentWeb development

Page 27: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages

They are not good forThey are not good for Writing efficient codeWriting efficient code Software engineering; moderate (100,000-Software engineering; moderate (100,000-

500,000 lines) to large programs500,000 lines) to large programs no argument checking or type checkingno argument checking or type checking encapsulation is a convention, not enforcedencapsulation is a convention, not enforced

Distributing applications where you want to Distributing applications where you want to protect the source codeprotect the source code

Page 28: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages(PERL)

Perl stands for Practical Extraction and Reporting Perl stands for Practical Extraction and Reporting Language. Language.

Perl is a language optimized for scanning arbitrary text Perl is a language optimized for scanning arbitrary text files, extracting information from those text files, and files, extracting information from those text files, and printing reports based on that information. printing reports based on that information.

It's also a good language for many system It's also a good language for many system management tasks. management tasks.

The language is intended to be practical (easy to use, The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, efficient, complete) rather than beautiful (tiny, elegant, minimal).minimal).

Page 29: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Scripting Languages(PHP)

Started as a macro Started as a macro

language for HTMLlanguage for HTML

Feels like a “toy” languageFeels like a “toy” language

Clumsy string manipulation, Clumsy string manipulation,

OOP, extensibilityOOP, extensibility

Wonderfully integrated with Wonderfully integrated with

HTML: seamless intermixing HTML: seamless intermixing

of PHP and HTMLof PHP and HTML

<HTML><HTML><HEAD><TITLE>Sample PHP <HEAD><TITLE>Sample PHP Program</TITLE></HEAD>Program</TITLE></HEAD><BODY><BODY><P>The day of the week is:<P>The day of the week is:<?php<?php $current_date = getdate(time()); $current_date = getdate(time()); print $current_date[“weekday”] print $current_date[“weekday”]?></P>?></P></BODY></BODY></HTML></HTML>

Page 30: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Event Driven)(Event Driven)

All the paradigms we’ve examined so far – All the paradigms we’ve examined so far – imperative, object-oriented, functional, and logic imperative, object-oriented, functional, and logic programming – are based on a fundamental model programming – are based on a fundamental model of computation in which the program design of computation in which the program design predetermines what will occur when the program is predetermines what will occur when the program is run.run.The event-driven programming paradigm turns this The event-driven programming paradigm turns this world inside out. Event-driven programs do not world inside out. Event-driven programs do not predict the control sequence that will occur; they are predict the control sequence that will occur; they are written to run reasonably to any particular sequence written to run reasonably to any particular sequence of events that may occur once execution begins.of events that may occur once execution begins.

Page 31: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Event Driven)(Event Driven)

The input data govern the particular sequence of The input data govern the particular sequence of control that is actually carried out by the program. control that is actually carried out by the program. Moreover, execution of an event-driven program Moreover, execution of an event-driven program does not typically terminate; such a program is does not typically terminate; such a program is designed to run for an arbitrary period of time, often designed to run for an arbitrary period of time, often indefinitely.indefinitely.The most widespread example of an event-driven The most widespread example of an event-driven program is the GUI mouse- and, windows-driven program is the GUI mouse- and, windows-driven user interface found on most desktop and laptop user interface found on most desktop and laptop computers in use today. Event-driven programs also computers in use today. Event-driven programs also drive web-based applications. drive web-based applications.

Page 32: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Event Driven)(Event Driven)

To provide effective support for event-driven To provide effective support for event-driven programming, some languages have developed programming, some languages have developed some basic terminology and principles of design. some basic terminology and principles of design.

Most recently, these principles have appeared in Most recently, these principles have appeared in Java, though other languages like Visual Basic and Java, though other languages like Visual Basic and Tcl/Tk also support event-driven programming. Tcl/Tk also support event-driven programming.

Page 33: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Visual Basic)(Visual Basic)

Visual Basic(VB) is a much-enhanced version of the BASIC Visual Basic(VB) is a much-enhanced version of the BASIC

programming language and the BASIC Integrated Development programming language and the BASIC Integrated Development

Environment (IDE). Environment (IDE).

One of the many significant improvements is that VB provides massive One of the many significant improvements is that VB provides massive

support for easily creating the user interface to Windows applications. This support for easily creating the user interface to Windows applications. This

is accomplished within the VB Integrated Development Environment (IDE), is accomplished within the VB Integrated Development Environment (IDE),

in which you use a mouse to "draw" your application and use the in which you use a mouse to "draw" your application and use the

keyboard to type in the code that is to be executed. keyboard to type in the code that is to be executed.

VB performs VB performs event-handling functionevent-handling function for you, and in fact, the for you, and in fact, the onlyonly time time

code will execute in VB iscode will execute in VB is in response to such an event in response to such an event! !

Page 34: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Visual Basic)(Visual Basic)

Objects provides a way to link together both code and data into a Objects provides a way to link together both code and data into a

"package" in such a way as to make handling and saving the code/data "package" in such a way as to make handling and saving the code/data

more intuitively. VB forms are objects, menus are objects, and the so are more intuitively. VB forms are objects, menus are objects, and the so are

the intrinsic VB controls. the intrinsic VB controls.

VB has also provided a wide variety of built-in code that programmers VB has also provided a wide variety of built-in code that programmers

once had to handle themselves. Of most significance is the built-in once had to handle themselves. Of most significance is the built-in

database handling features of VB. It is generally accepted that over half of database handling features of VB. It is generally accepted that over half of

all VB applications are written to handle databases! all VB applications are written to handle databases!

VB has also begun to provide built-in support of Internet access and web-VB has also begun to provide built-in support of Internet access and web-

services as in Visual Basicservices as in Visual Basic . .NET version.NET version.

Page 35: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(DELPHI)(DELPHI)

Based on Pascal programming language, Based on Pascal programming language,

Delphi has developed a huge following. Delphi has developed a huge following.

Designed to be compatible with the OCX family of controls that Designed to be compatible with the OCX family of controls that support Visual Basic, Delphi is very similar to Visual Basic. support Visual Basic, Delphi is very similar to Visual Basic.

The single best feature of Delphi is that it creates completely The single best feature of Delphi is that it creates completely stand-alone EXE files - unlike Visual Basic which requires the stand-alone EXE files - unlike Visual Basic which requires the distribution of a huge number of supporting files for even the distribution of a huge number of supporting files for even the smallest of applications. smallest of applications.

Delphi's use of Pascal, instead of a BASIC-derived language is Delphi's use of Pascal, instead of a BASIC-derived language is probably one of the primary reasons that Visual Basic probably one of the primary reasons that Visual Basic programmers don't jump ship. programmers don't jump ship.

Page 36: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Visual C++)(Visual C++)

The visual part of Visual C++ is virtually identical with Visual The visual part of Visual C++ is virtually identical with Visual Basic in terms of the ease of creating Windows programs. Basic in terms of the ease of creating Windows programs.

It's the underlying difficulty of the C coding process that keeps It's the underlying difficulty of the C coding process that keeps users away. users away.

Many programmers get their start by reading/learning on their Many programmers get their start by reading/learning on their own. Unfortunately, C (or C++) simply is not an easy language own. Unfortunately, C (or C++) simply is not an easy language to learn. Beginning programmers usually need a classroom to learn. Beginning programmers usually need a classroom environment with a skilled instructor to enable them to environment with a skilled instructor to enable them to understand the intricacies of the C(or C++) programming understand the intricacies of the C(or C++) programming language. language.

Page 37: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Visual ProgrammingVisual Programming(Visual C++)(Visual C++)

At the overview level, C (or C++)At the overview level, C (or C++) is just another programming is just another programming

language and is not that difficult to understand in concept. language and is not that difficult to understand in concept.

It's in the details of coding that new users find themselves It's in the details of coding that new users find themselves

bogged down with questions that give the most difficulty. bogged down with questions that give the most difficulty.

Visual Basic, on the other hand, is a more intuitive, English-Visual Basic, on the other hand, is a more intuitive, English-

like language which users have found they can work through on like language which users have found they can work through on

their own (or with minimal help from other programmers).their own (or with minimal help from other programmers).

Page 38: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Macros and Application Customization (by R.O Buchal)

• Many useful applications can be created by building on existing software

• Word and Excel can be extensively programmed using Visual Basic for Applications

• For example, you could create a program to accept data using an input form, analyze the results, and plot a graph, all in Excel

Page 39: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Computer Aided Software Engineering (CASE) (by R.O Buchal)

CASE is a set of productivity tools for programmers and software developers

The tools are analogous to word processors and spreadsheets for business people

CASE is still immature, but will become increasingly important in the future

Page 40: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Computer Aided Software Engineering (CASE) (by R.O Buchal)

The CASE toolkit includes:Design tools

– flow diagrams, structure charts, etc.

Prototype tools– user interface, screen generators, report

generators

Information repository tools– database for the software development project

Page 41: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Computer Aided Software Engineering (CASE) (by R.O Buchal)

Program development tools– organize, generate and test code

Methodology tools– support standard development methodology

Page 42: Programming Languages compiled By Ergin TARI. Programming Language Classification according to Dr. Deryck Brown, School of Computer and Math Sciences.

Questions ?