conceitos iniciais de linguagens de programação

33
Tecnologia em Sistemas para Internet - IFMS Aula 01 - Conceitos Iniciais de Linguagens de Programação Linguagem de Programação I Prof.º Msc. Sidney Roberto de Sousa

Upload: sidney-roberto

Post on 24-May-2015

2.723 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Conceitos Iniciais de Linguagens de Programação

Tecnologia em Sistemas para Internet - IFMS

Aula 01 - Conceitos Iniciais de Linguagens de Programação

Linguagem de Programação IProf.º Msc. Sidney Roberto de Sousa

Page 2: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 2

Sumário

● Linguagem de programação? O que é isto?● História● Níveis de linguagens de programação● Tipos de linguagens de programação● Linguagens de programação quanto a

tipagem

Page 3: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 3

Linguagem de programação? O que é isto?

“linguagem artificial desenvolvida para comunicar instruções para uma 

máquina”

Page 4: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 4

Linguagem de programação? Para o que serve?

● Criar programas que controlam o comportamento de uma máquina

● Expressar algoritmos

Page 5: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 5

História: De 1800 a 1900

Jacguard Loom

Pianola

Page 6: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 6

História: De 1800 a 1900

Ada Lovelace e a máquina anaĺitica

Page 7: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 7

História: De 1800 a 1900

Cartões perfurados (utilizados até hoje!)

Page 8: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 8

História: Primeira metade do século 20

ENIAC: Interruptores e cabos

Page 9: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 9

História: Anos 50 e 60

● Assembly – meados dos anos 50: várias versões, criadas por pessoas e organizações diversas

● FORTRAN (FORmula TRANslator) - 1955: inventada por John Backus et al

● LISP (LISt Processor) - 1958: inventada por John McCarthy et al

● COBOL (COmmon Business Oriented Language) - 1959: criada pelo Short Range Committee

● BASIC (Beginner's All-purpose Symbolic Instruction Code) - 1964: inventada por John Kermeny et al

Page 10: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 10

História: Anos 70

● C - 1973: criada por Dennis Ritchie● Smalltalk - 1972: Criada pela Xerox PARC ● Prolog - 1972: criada por Alan Comerauer et al● Pascal - 1970: criada por Niklaus Wirth● SQL (*) - 1974: criada por Donald Chamberlin

e Raymond Boyce

Page 11: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 11

História: Anos 70

● C - 1973: criada por Dennis Ritchie● Smalltalk - 1972: Criada pela Xerox PARC ● Prolog - 1972: criada por Alan Comerauer et al● Pascal - 1970: criada por Niklaus Wirth● SQL (*) - 1974: criada por Donald Chamberlin

e Raymond Boyce

Page 12: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 12

Dennis Ritchie (1941-2011)

Page 13: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 13

História: Anos 80

● C++ - 1983: criada por Bjarne Stroustrup● Objective-C - 1983: criada por Brad Cox e

Tom Love● MATLAB (MATrix LABoratory) - fim dos anos

70: criada por Cleve Moler● Perl - 1987: criada por Larry Wall

Page 14: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 14

História: Anos 90

● Python - 1991: Criada por Guido Van Rossum

● Visual Basic - 1991: criada pela Microsoft

● HTML (*) - 1991: criada por Tim Berners-Lee

● Ruby - 1995: criada por Yoshiro Matsumoto (o Matz!)

● Lua - 1993: criada por Roberto Ierusalimschy et al (100% brasileira!)

● Java - 1995: criada por James Gosling

● Delphi - 1995: criada pela Borland

● JavaScript - 1995: criada por Brendan Eich

● PHP - 1995: criada por Rasmus Lerdorf

Page 15: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 15

História: Anos 90

● Python - 1991: Criada por Guido Van Rossum

● Visual Basic - 1991: criada pela Microsoft

● HTML (*) - 1991: criada por Tim Berners-Lee

● Ruby - 1995: criada por Yoshiro Matsumoto (o Matz!)

● Lua - 1993: criada por Roberto Ierusalimschy et al (100% brasileira!)

● Java - 1995: criada por James Gosling

● Delphi - 1995: criada pela Borland

● JavaScript - 1995: criada por Brendan Eich

● PHP - 1995: criada por Rasmus Lerdorf

Page 16: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 16

Tim Berners-Lee: O WWW Man!

Page 17: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 17

História: De 2000 até os dias atuais

● ActionScript - 2000: criada pela Macromedia, atual Adobe Systems

● C# (C Sharp) - 2000: criada pela Microsoft● VB.NET (Visual Basic .NET) - 2001: criada

pela Microsoft● Groovy - 2003: criada por James Strachan● Scala - 2003: criada por Martin Odersky

Page 18: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 18

História: De 2000 até os dias atuais

● ActionScript - 2000: criada pela Macromedia, atual Adobe Systems

● C# (C Sharp) - 2000: criada pela Microsoft● VB.NET (Visual Basic .NET) - 2001: criada

pela Microsoft● Groovy - 2003: criada por James Strachan● Scala - 2003: criada por Martin Odersky

Quem vai substituir a linguagem Java?

Page 19: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 19

Níveis de Linguagens de Programação

● Linguagens de programação costumam ser classificadas de várias formas

● Uma forma mais simples de classificação é a por níveis. Esta classificação pode conter os seguintes níveis:– Linguagens de baixo nível

– Linguagens de alto nível

– Linguagens de altíssimo nível

Page 20: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 20

Linguagens de baixo nível

● Linguagens mais próximas à linguagem de máquina (bits zero e um)

● Exemplos:– Assembly

– C (depende do ponto de vista...)

Page 21: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 21

Linguagens de alto nível

● Possuem um alto nível de abstração dos detalhes da máquina

● Pode utiliza elementos de linguagem natural● Exemplos:

– Java

– Python

– Ruby

– Scala

Page 22: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 22

Linguagens de altíssimo nível

● Possuem um nível muito alto de abstração, sendo utilizadas a priori como uma ferramenta de produtividade ao programador

● Costumam ser limitadas a necessidades específicas

● Exemplos:– mIRC scripting language

– LiveCode

– Magic xpi

– Maker

Page 23: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 23

Tipos de Linguagens de Programação

Linguagens de programação também podem ser divididas entre os seguintes tipos:

● Linguagens de script● Linguagens interpretadas● Linguagens compiladas

Page 24: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 24

Linguagens de Script

● São executadas do interior de programas ou de outras linguagens de programação, não ficando restritas a estes ambientes

● Todas as linguagens de script são linguagens interpretadas; porém, a recíproca não é verdadeira

● Exemplos:

– JavaScript– Lua– PHP– Python

Page 25: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 25

Linguagens Interpretadas

● Seu código fonte é executado por interpretadores, para depois ser executado pelo sistema operacional ou processador

● Em algumas destas linguagens, o código criado é traduzido para o que é chamado de bytecodes, o qual por sua vez é interpretado numa máquina virtual

● Exemplos:

– Java– Python– C#– PHP– VBScript

Page 26: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 26

Linguagens Compiladas

● Seu código fonte é traduzido e executado diretamente pelo sistema operacional ou pelo processador

● Este processo de “tradução” é chamado de compilação e é realizado por um programa chamado de compilador

● Exemplos:– C– C++– Objective-C– Pascal

– Delphi– Fortran

Page 27: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 27

Linguagens de Programação quanto a Tipagens

Além das questões vistas anteriormente, as linguagens de programação também podem ser

classificadas quanto a tipagem de suas variáveis, objetos, funções, métodos, classes,

etc.

Page 28: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 28

Linguagens fortemente tipadas

Especificam uma ou mais restrições a respeito de como operações envolvendo valores de

diferentes tipos de dados podem ser “misturados”

Page 29: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 29

Exemplo: Java

Integer numero = 1;

String palavra = “1”;

numero = numero + Integer.parseInt(palavra); //resultado: 2

Page 30: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 30

Linguagens fracamente tipadas

Permitem conversões de tipos de dados de forma implícita.

Page 31: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 31

Exemplo: JavaScript

var variavel = 1; //contém o número 1

var outraVariavel = “1”; //contém uma string com o único caractere '0'

variavel = variavel + outraVariavel; //resultado: “11”

Page 32: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 32

Exemplo: Python

numero = 1

palavra = "0"

numero = numero + int(palavra) #resultado: 1

palavra = palavra + str(numero) #resultado: "01"

lista = [numero, palavra, False, True] #lista contendo valores de vários tipos

Page 33: Conceitos Iniciais de Linguagens de Programação

Tec. em Sistemas para Internet - IFMS 33

Referências

History of programming languages. Disponível em http://tinyurl.com/48cf4u. Acessado em 25 de março de 2013.