SlideShare a Scribd company logo
1 of 33
Download to read offline
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
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
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”
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
Tec. em Sistemas para Internet - IFMS 5
História: De 1800 a 1900
Jacguard Loom
Pianola
Tec. em Sistemas para Internet - IFMS 6
História: De 1800 a 1900
Ada Lovelace e a máquina anaĺitica
Tec. em Sistemas para Internet - IFMS 7
História: De 1800 a 1900
Cartões perfurados (utilizados até hoje!)
Tec. em Sistemas para Internet - IFMS 8
História: Primeira metade do século 20
ENIAC: Interruptores e cabos
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
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
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
Tec. em Sistemas para Internet - IFMS 12
Dennis Ritchie (1941-2011)
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
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
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
Tec. em Sistemas para Internet - IFMS 16
Tim Berners-Lee: O WWW Man!
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
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?
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
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...)
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
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
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
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
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
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
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.
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”
Tec. em Sistemas para Internet - IFMS 29
Exemplo: Java
Integer numero = 1;
String palavra = “1”;
numero = numero + Integer.parseInt(palavra); //resultado: 2
Tec. em Sistemas para Internet - IFMS 30
Linguagens fracamente tipadas
Permitem conversões de tipos de dados de
forma implícita.
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”
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
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.

More Related Content

What's hot

Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo VariaveisAndré Nobre
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 

What's hot (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo Variaveis
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 

Viewers also liked

Fundamentos do java: estruturas de controle
Fundamentos do java: estruturas de controleFundamentos do java: estruturas de controle
Fundamentos do java: estruturas de controleNécio de Lima Veras
 
Estrutura de Programas
Estrutura de ProgramasEstrutura de Programas
Estrutura de ProgramasSidney Roberto
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Informatica e Educação
Informatica e EducaçãoInformatica e Educação
Informatica e Educaçãojulieta lamarao
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 

Viewers also liked (20)

Fundamentos do java: estruturas de controle
Fundamentos do java: estruturas de controleFundamentos do java: estruturas de controle
Fundamentos do java: estruturas de controle
 
Estrutura de Programas
Estrutura de ProgramasEstrutura de Programas
Estrutura de Programas
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Escopo de variaveis
Escopo de variaveisEscopo de variaveis
Escopo de variaveis
 
Amarração e escopo
Amarração e escopoAmarração e escopo
Amarração e escopo
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Informatica e Educação
Informatica e EducaçãoInformatica e Educação
Informatica e Educação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Agora é Android, Tá Safo?
Agora é Android, Tá Safo? Agora é Android, Tá Safo?
Agora é Android, Tá Safo?
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 

Similar to Conceitos Iniciais de Linguagens de Programação

Conceitos Iniciais LP I
Conceitos Iniciais LP IConceitos Iniciais LP I
Conceitos Iniciais LP IPatrícia Melo
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionaisRobson Ferreira
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoMonike Santos
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosAndré Curvello
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfAmlieOGalaxias
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Fernando Luiz Cola
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Paulo Vital
 
software tipos.ppt
software tipos.pptsoftware tipos.ppt
software tipos.pptLinaKelly3
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasAndré Curvello
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 

Similar to Conceitos Iniciais de Linguagens de Programação (20)

Conceitos Iniciais LP I
Conceitos Iniciais LP IConceitos Iniciais LP I
Conceitos Iniciais LP I
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionais
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a Programação
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
 
software tipos.ppt
software tipos.pptsoftware tipos.ppt
software tipos.ppt
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das Coisas
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 

More from Sidney Roberto

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerdSidney Roberto
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBSidney Roberto
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVSidney Roberto
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVSidney Roberto
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQSidney Roberto
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoSidney Roberto
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonSidney Roberto
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaSidney Roberto
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaSidney Roberto
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQSidney Roberto
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroSidney Roberto
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação ISidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Sidney Roberto
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em JavaSidney Roberto
 

More from Sidney Roberto (20)

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerd
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDB
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IV
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IV
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de Trabalho
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiro
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Listas (parte 2 de 3)
Listas (parte 2 de 3)Listas (parte 2 de 3)
Listas (parte 2 de 3)
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
 
Fatores Humanos
Fatores HumanosFatores Humanos
Fatores Humanos
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
 

Conceitos Iniciais de Linguagens de Programação

  • 1. 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
  • 2. 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
  • 3. 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”
  • 4. 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
  • 5. Tec. em Sistemas para Internet - IFMS 5 História: De 1800 a 1900 Jacguard Loom Pianola
  • 6. Tec. em Sistemas para Internet - IFMS 6 História: De 1800 a 1900 Ada Lovelace e a máquina anaĺitica
  • 7. Tec. em Sistemas para Internet - IFMS 7 História: De 1800 a 1900 Cartões perfurados (utilizados até hoje!)
  • 8. Tec. em Sistemas para Internet - IFMS 8 História: Primeira metade do século 20 ENIAC: Interruptores e cabos
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Tec. em Sistemas para Internet - IFMS 12 Dennis Ritchie (1941-2011)
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. Tec. em Sistemas para Internet - IFMS 16 Tim Berners-Lee: O WWW Man!
  • 17. 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
  • 18. 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?
  • 19. 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
  • 20. 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...)
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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.
  • 28. 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”
  • 29. Tec. em Sistemas para Internet - IFMS 29 Exemplo: Java Integer numero = 1; String palavra = “1”; numero = numero + Integer.parseInt(palavra); //resultado: 2
  • 30. Tec. em Sistemas para Internet - IFMS 30 Linguagens fracamente tipadas Permitem conversões de tipos de dados de forma implícita.
  • 31. 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”
  • 32. 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
  • 33. 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.