450 likes | 817 Views
Languages. Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpreting Classifying languages The process of programming Programming tools Bugs. Languages in IT and CS. English … Pseudo-code Programming languages Other formalised languages. Languages.
E N D
Languages Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
Languages in IT and CS • English … • Pseudo-code • Programming languages • Other formalised languages R.G.Keim@kent.ac.uk
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
Pseudo-code • A half-way point between the way in which we would describe the steps in a algorithm to another person and the way in which one would write them in a specific programming language to be run on a computer
Pseudo-code • Doesn't relate to any specific programming language • More formal than natural human language, less formal than something written in a programming language • You’ll be familiar with flow charts
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
Programming languages VB Javascript Java VBScript XSLT NOT programming languages HTML XHTML XML UML Not all computer languages are programming languages
Languages Languages for IT & CSPseudo-code What HTML isn’t Early historyCompiling & interpretingClassifying languages The process of programming Programming tools Bugs
A early history of computing languages • Machine code • completely consists of binary, • is the computer code that machines actually execute • hard for humans to read, write and understand (even when its converted to hex) • Assembler – designed so that humans have some guides to understanding – gets changed into the actual code that is run on the computers • Early higher order languages (eg FORTRAN, COBOL, BASIC, Lisp)
The translation from high-level language to machine instructions. Programs in a standard programming language (C, C#, Java, VB.Net Total=princ+interest Compile Programs in assembly language ADD 20, 20, 24 Assemble Programs in binary 00100100 0111010100101001 00110101
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
Compiling • Many computing languages are complied in versions that can be run on computers – languages such as C++, Java (most languages that are used for writing applications are compiled) • Other computing languages are interpreted. The machine code is generated by an interpreter at the time that they are run. Most scripting languages are of this sort – eg. JavaScript and VBScript
Compiling and Interpreting • Not all computing languages are compiled. Some are interpreted • In interpreted languages, the source code is always present and it when it is run it is interpreted line-by-line and then it is executed. Most scripting languages are of this sort – eg. JavaScript and VBScript
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languagesThe process of programming Programming tools Bugs
Classifying computer languages • Syntax • Paradigm • Common uses • Relationship to with the lower-level software and hardware
Syntax • There are families of languages that have the same or nearly the same syntax • JavaScript's syntax is very like the syntax of C, C++, C#, Java ... • VB.Net's syntax is very like the syntax of Basic, VBScript ...
Different types of computer languages – different paradigms • Procedural programming languages (eg: C and Basic) • Functional languages (eg: Lisp, Haskell) • Object-oriented languages (eg C++, Smalltalk, Java, VisualBasic.Net) • Scripting languages (JavaScript, Perl, VBScript) • Declarative languages (Prolog)
Object-oriented programming • Examples C++, Java • Hopes to parallel ways we think about and analyse problems
Scripting languages • Examples: javascript perl, VBScript, php, … • Usually interpreted rather than compiled • Usually "weakly typed" • Relatively quick to write – often used for small jobs You write a script to handle. • Many of them are especially designed for certain purposes (javascript, php and to some extent perl
Different types of computer languages – different paradigms Procedural programming languages (eg: C and Basic) Functional languages (eg: Lisp, Haskell) Object-oriented languages (eg C++, Smalltalk, Java, VB.Net) Scripting languages (JavaScript, Perl, VBScript) Declarative languages (Prolog) 21
Common uses • Scripting languages (Javascript, VBScript, perl, php) • Application languages • Text manipulation (perl)
FAQ • Why are there so many? • Do I need to learn them all? • Which ones are important for me to learn? • How are they different?
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programmingProgramming tools Bugs
Things we do when programming Running tests Gathering specifications Writing tests Finding problems with the code Writing code Interpreting specifications Adding functionality Fixing problems with the code
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
Tools • To understand what we need to build • To create softwareIDEsText editors • To test softwareunit test tools • To debug software - debuggers
Visual Studio BlueJ Excel (?) IDEs
Write – IDEs Test – IDEs debuggers Design and analyse – UML IDEs are software applications UML – (the unified modelling language) helps people design software and communicate their designs Tools
A text editor Syntax highlighting!
The cycle for writing code • Write some code ('edit') • Compile the code • Run the code Repeat
A tool – UML ("the Unified Modelling language") • Class diagrams are a simple and useful way of expressing relationships between parts of our program in an object-oriented language.
Languages Languages for IT & CSPseudo-code What HTML isn’t Early history Compiling & interpretingClassifying languages The process of programming Programming tools Bugs
All the code we write has bugs • 'All''Well, ...' • Bugs are not good!
What to do when you find a bug • Apply the debugging strategy: • Reproduce the error, understand the problem, check the obvious causes • If this does not solve the problem, press on • Try to isolate the problem • Think through the probable process
Programming languages • Similiarities – help us to learn other ones • Syntax • Purpose • Paradigm • There are different programming languages for different purposes – different strengths and weaknesses
Things we do when programming Running tests Gathering specifications Writing tests Finding problems with the code Is there any special order here? Writing code Interpreting specifications Adding functionality Fixing problems with the code 39
Terminology you should know • IDE – Integrated programming environment • Scripting language • Pseudo-code • Machine code • Syntax R.G.Keim@kent.ac.uk
Exam questions (2009 – CO332) What is an IDE and what does it do? Give an example of an IDE. [2 marks] Draw a flow diagram or write in pseudo-code an algorithm for alphabetising a collection of CDs. [4 marks] R.G.Keim@kent.ac.uk