Você está na página 1de 7

Fundamentos para Computação Linguagens de Programação

Linguagens de
Programação
Fundamentos para Computação

Por: Sandro Alex


http://www.sandroalex.info

Programação em computadores
• Programar não era muito simples
• Necessário diversos conhecimentos,
linguagem não era natural
• Sistema de numeração não natural
• Poucas pessoas aptas a operar
• Linguagem escrita para programar
• Utilizar mnemônicos como visto na
máquina de Von Neumann
• Computador entende apenas bits

Linguagens de Programação www.sandroalex.info 2

Montadores
• Interpretam texto escrito em código de máquina
• Cada instrução é associada a um código binário
• Simples, porém ainda pouco acessível para os seres humanos

Código que exibe na


tela “Ola mundo!”,
escrito na linguagem
Assembly para ser
montado no
programa Assembler

Linguagens de Programação www.sandroalex.info 3

http://www.sandroalex.info 1
Fundamentos para Computação Linguagens de Programação

Linguagem de programar computador


• Seria intuitivo, ideal, programá-lo da forma como falamos
• Não requereria aprendizado
• Palavra tem significado distinto a depender do contexto
• A manga rosa: manga fruta? manga da camisa?
• Linguagem que o computador pudesse entender
• Conjunto finito de instruções; Sintaxe rígida;
• Uma instrução corresponde a um ou mais microcódigos?

Linguagens de Programação www.sandroalex.info 4

Compilador
• Analisa sintática e semanticamente o código escrito
• Gera um código intermediário chamado de código objeto
• Programador escreve código na sintaxe da linguagem
• Link editor
• Associa instruções do código objeto a instruções de bibliotecas
• Montador gera código executável que a máquina entende

prg.pas prg.obj prg.exe


Linguagens de Programação www.sandroalex.info 5

Interpretador
• Outra forma de converter programa no código de máquina
• Converte em linguagem de máquina cada linha sendo executado
• Processo é mais lento, porém mais fácil de depurar
Linguagem
Alto nível Interpretador de máquina /
Execução

Linguagem
Alto nível Compilador Execução
de máquina

Linguagem
Baixo nível Montador Execução
de máquina

Linguagens de Programação www.sandroalex.info 6

http://www.sandroalex.info 2
Fundamentos para Computação Linguagens de Programação

Linguagens de alto nível e baixo nível

Alto nível

Baixo nível

Linguagens de Programação www.sandroalex.info 7

Mais de 200 linguagens de programação


foram criadas entre 1952 e 1972
• 1957 - FORTRAN; • 1978 - CSP;
• 1958 - ALGOL; • 1978 - FP;
• 1960 - LISP; • 1980 - dBASE II;
• 1960 - COBOL; • 1983 - Smalltalk-80;
• 1962 - APL; • 1983 - Ada;
• 1962 - SIMULA; • 1983 - Parlog;
• 1964 - BASIC; • 1984 - Standard ML;
• 1964 - PL/I; • 1986 - C++;
• 1966 - ISWIM; • 1986 - CLP(R);
• 1970 - Prolog; • 1986 - Eiffel;
• 1972 - C; • 1988 - CLOS;
• 1975 - Pascal; • 1988 - Mathematica;
• 1975 - Scheme; • 1988 - Oberon;
• 1977 - OPS5; • 1990 - Haskell;

Linguagens de Programação www.sandroalex.info 8

Linguagens de Programação
• Definição
• Conjunto de instruções e regras de composição e encadeamento
(sintaxe), por meio do qual se expressam ações executáveis por um
computador, seja diretamente, seja por meio de processos de
compilação, interpretação ou montagem
• Tipos
• Linguagem de máquina
• Linguagem procedural
• Linguagem orientada a eventos
• Linguagem orientada a objeto
• Linguagem orientada a aspecto
• Classificação
• Objetivos gerais X específicos
• Orientada para negócios X científica
• Orientada para procedimentos x problemas
• Processamento batch X processamento em tempo real

Linguagens de Programação www.sandroalex.info 9

http://www.sandroalex.info 3
Fundamentos para Computação Linguagens de Programação

Tradutores
• Tradutor de linguagem
• Converte uma instrução de uma linguagem de programação de
alto nível em linguagem de máquina
• Interpretador
• Tradutor de linguagem que converte cada instrução de um
programa em linguagem de máquina (tempo de execução)
• Compilador
• Tradutor de linguagem que traduz um programa completo para um
programa completo em linguagem de máquina.
• Montador
• Programa que converte em linguagem de máquina as instruções
escritas em mnemônicos (símbolos) da linguagem Assembly
Linguagens de Programação www.sandroalex.info 10

Gerações das Linguagens


• 1ª Geração: Linguagem de Máquina (baixo nível, mais rápida!)
• Códigos binários informam à CPU quais circuitos ligar e desliga
• Códigos binários informam à CPU quais circuitos ligar e desliga
• 2ª Geração: Linguagem Assembly (baixo nível)
• Instruções através de símbolos mais facilmente compreensíveis.
• 3ª Geração: Linguagem de Alto Nível (Ex: Basic, Cobol, Fortran)
• Instruções e comandos semelhantes à língua inglesa (Read, Print, List, ...)
• 4ª Geração: Linguagens de interrogativas (query languages)
• Perguntas (indagações) enfatizam quais resultados esperados mais do que
como. Chamadas “Linguagens de Banco de Dados”
• Linguagem de Indagação Estruturada (Structure Query Language - SQL)
• 5ª Geração: Linguagens naturais (Ex: Clout, Rabbit)
• Usadas em inteligência artificial e sistemas especialistas.
• Permitem comunicação com computador usando sentenças normais

Linguagens de Programação www.sandroalex.info 11

Linguagens Fortran e Cobol


• Características comuns
• Orientada para procedimentos, originalmente BATCH (hoje tempo real)

• Fortran (FORmula TRANslator)


• Desenvolvida pela IBM em 1957, voltada para aplicações científicas
• Objetivos gerais, pode ser usada em aplicações empresariais

• Cobol (Common Business Oriented Lan-guage)


• Comissão CODASYL (Conference On DAta SYstems Languages)
desenvolve em 1959. 1960 o Departamento de Defesa dos EUA adotou
• Orientada também a negócios, multiplataforma (ANSI)
• Aparência e estrutura de um relatório comercial escrito em inglês
• Programa é feito a partir de sentenças, parágrafos, seções e divisões.
• Programas longos, até 7 vezes mais instruções do que outras linguagens
• Grande capacidade de processamento de arquivos

Linguagens de Programação www.sandroalex.info 12

http://www.sandroalex.info 4
Fundamentos para Computação Linguagens de Programação

Linguagens Basic, Pascal e C


• Características comuns
• Objetivos gerais, orientada para procedimentos, em tempo real, para
aplicações científicas e de negócios

• Basic (Beginners All-purpose Symbolic Instruction Code)


• Desenvolvida por John Kemeny na Faculdade de Dartmouth, 1960

• Linguagem Pascal
• Desenvolvida por Niklaus Wirth (Inst. Fed. de Tec., Suiça, 68)
• Excelente para aprendizado de técnicas de programação

• Linguagem C
• Desenvolvida por Dennis Ritchie (Lab.Bell, 70)
• Permite amplo acesso a atividades internas do processador
• Multiplataforma, excelente para escrever softwares básicos

Linguagens de Programação www.sandroalex.info 13

Linguagens Orientadas para Objetos


• Encapsulamento
• Itens de programação são agrupados e chamados de um objeto

• Partes pré-fabricadas
• Como construir um prédio usando módulos ou partes pré-fabricadas
(podem ser utilizados inúmeras vezes)
• Maior produtividade
• Reutilização de códigos para construir novos aplicativos
• Maior confiabilidade
• Aplicativos desenvolvidos em objetos testados pelo tempo
• Objetos têm propriedades de polimorfismo e hereditariedade
• Segundo Steve Jobs permite às empresas de software “construir um
software literalmente 5 a 10 vezes mais rápido, muito mais confiável,
muito mais fácil de se manter e muito mais poderoso”
Java, C++, C#, PHP, etc
Linguagens de Programação www.sandroalex.info 14

Linguagens Visuais e Máquina Virtual


• Linguagens visuais
• Utilizadas em ambiente visual ou gráfico
• Mouse, ícones ou símbolos na tela e menus pull-down
• Ambiente visual torna a programação mais fácil e intuitiva
• Visual Basic, Visual C++, Delphi, ...

• Máquina Virtual Java (Java Virtual Machine – JVM)


• Carrega e executa JAVA (bytecodes em executável)
• Gerencia aplicativo enquanto é executado
• JVM para cada tipo de SO
• JAVA executa na JVM, são portáveis

Linguagens de Programação www.sandroalex.info 15

http://www.sandroalex.info 5
Fundamentos para Computação Linguagens de Programação

Fluxo Java

Linguagens de Programação www.sandroalex.info 16

Top Languages
• https://www.tiobe.com/tiobe-index

• https://spectrum.ieee.org/static/interactive-the-top-
programming-languages-2017

• http://redmonk.com/sogrady/2017/06/08/language-
rankings-6-17

Linguagens de Programação www.sandroalex.info 17

Exemplos de códigos em linguagens


Assembly C Java

Fortran
Fatorial

PHP

Cobol

Linguagens de Programação www.sandroalex.info 18

http://www.sandroalex.info 6
Fundamentos para Computação Linguagens de Programação

Programas “Hello Word”


• Mais de 570 Programas “Hello Word!”
• https://helloworldcollection.github.io

• Resumo de programas “Hello, Word!”


• https://fernandofranzini.wordpress.com/2017/05/04/ola-mundo-em-
varias-linguagens

• Faça você mesmo online


• https://www.tutorialspoint.com/codingground.htm
• http://www.onlinecompiler.net
• http://codepad.org
• https://ideone.com www.sandroalex.info
• https://www.codechef.com/ide * Aplicativos\onlnine

Linguagens de Programação www.sandroalex.info 19

Checklist
• Tradutores
• Montadores, Compiladores, Interpretadores
• Link Editor
• Linguagem de alto nível X linguagem de baixo nível
• Linguagem de máquina, procedural, orientada a eventos, orientada a objeto,
orientada a aspecto
• Classificação
• objetivo geral ou específico, orientada a negócio ou científica, orientada para
procedimentos ou problemas, processamento em batch ou tempo real
• Gerações
• 1ª geração linguagem de máquina, 2ª geração assembly, 3ª geração alto nível, 4ª
geração interrogativas, 5ª geração naturais
• Exemplos
• Fortran, Cobol, Basic, Pascal, C, Orientadas para Objetos, Visuais e Máquina Virtual
• Top 10
• Exemplos de códigos

Linguagens de Programação www.sandroalex.info 20

http://www.sandroalex.info 7

Você também pode gostar