SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
PARADIGMAS DE
PARADIGMAS DE
LINGUAGEM DE
LINGUAGEM DE
PROGRAMAÇÃO
PROGRAMAÇÃO
AULA 1
AULA 1
Apresentar os principais paradigmas de programação.
Introduzir programação imperativa
Introduzir programação orientada a objetos
Introduzir programação funcional
Introduzir programação Lógica
Introduzir conceitos básicos de implementação de
linguagens de programação.
MOTIVAÇÃO
●
Já em 1969, SAMMET listou 120 LPs que eram
relativamente bem difundidas. Desde então muitas
centenas de outras Lps surgiram (e desapareceram).
●
A maioria dos programadores, todavia, nunca chega
a usar mais do que umas poucas linguagens. Muitos
não usam mais que uma ou duas em sua inteira vida
profissional.
●
Por que então estudar linguagens de programação?
Porque estudar Linguagem de P
●
Melhorar sua habilidade de desenvolver algoritmos
(ex., uso eficiente de recursividade)
●
Melhorar sua habilidade de usar a LP (ex., uso
eficiente dos recursos de gerenciamento de
memória)
●
Aumentar o seu vocabulário de construção úteis de
programação (ex., declarações repita até <repeat-
until> e chaveamento <case> ou <switch>)
Porque estudar Linguagem de P
●
Melhor escolher uma linguagem de programação por
conhecer seus pontos fortes e fracos ( ++ depende muito
do conhecimento dos programadores).
●
Torna mais fácil aprender novas LPs e acompanhar a
tecnologia (ex., quanto mais LPs você souber, mais fácil
se torna aprender uma nova LP).
●
Torna mais fácil projetar novas linguagens de
programação (ex.,algumas interfaces de usuário podem
adquirir contornos de uma“linguagem de programação”).
●
• E por último, abrangência de formação.
Definição de LP
Linguagem utilizada para enviar instruções
a um computador. Como qualquer
linguagem, apresenta símbolos e regras
para a combinação desses símbolos.
(adaptado de Downing et al. Dictionary of
computer and Internet terms).
Tipos de LP
Linguagem de alto nível
Ex.: C, C#, Objective-C, Java, Ruby, Python, Erlang,
Clojure, Prolog, Processing.
Linguagem de montagem (assembly)
Ex.: Microsoft Macro Assembler.
Linguagem de máquina
Ex.: conjunto de instruções para processadores
Intel.
Contador := 0;
LDA 4
STA A
0010 0100
0001 1010
Linguagem de alto nivel
●
São linguagens voltadas para o usuário (programador).
●
Os comandos das linguagens apresentam um nível mais alto de
abstração e próximos da linguagem humana.
●
Necessitam de programas especiais (compiladores ou
interpretadores) para traduzir o código para linguagem de
máquina.
Vantagens: têm maior portabilidade podendo ser executadas em
várias plataformas com pouquíssimas modificações; não exigem
conhecimento do código de máquina.
Desvantagens: as rotinas geradas são mais genéricas e portanto
mais complexas e por isso são mais lentas e ocupam mais
memória (o código não é tão otimizado).
Linguagem de montagem (assembly)
●
São linguagens voltadas para a máquina e para o usuário.
●
São linguagens intermediárias entre a linguagem de
máquina e a linguagem de alto nível.
●
As instruções são simplificações da linguagem de
máquina que usam código mnemônicos (em inglês).
Vantagens: comandos com sintaxe mais inteligível que
nas linguagens de máquina.
Desvantagens: alguns mnemônicos ainda são de difícil
compreensão; ainda dependente da arquitetura do
computador em questão.
Linguagem de alto nível
Begin
var op1, op2, r: integer;
r := 0;
while op2 > 0 do
begin
r := r + op1;
op2 := op2 - 1;
end
End
Linguagem intermediária
Begin
var op1, op2, r: integer;
r := 0;
laço : if op2 = 0 go to fim;
r := r + op1;
op2 := op2 - 1;
go to laço;
fim: End.
Ling montagem (Assembly)
A forma geral de uma instruçao assembly e
mnemonica
[operando1[,operando2[,operando3]]]
programa assembly muda o tamanho do
cursor
.MODEL SMALL ;modelo de memória
.STACK ;espaço de memória para instruções do programa na pilha
.CODE ;as linhas seguintes são instruções do programa
mov ah,01h ;move o valor 01h para o registrador ah
mov cx,07h ;move o valor 07h para o registrador cx
int 10h ;interrupção 10h
mov ah,4ch ;move o valor 4ch para o registrador ah
int 21h ;interrupção 21h
.DATA
x db 1
END ;finaliza o codigo do programa
A memória é dividida em um
número arbitrário de segmentos
.MODEL SMALL
.STACK
.CODE
.DATA
END
CODIGO
DADOS
PILHA
Registradores de Uso Geral
AX BX CX DX (16 bits)
AH/AL BH/BL CH/CL DH/DL (8 bits)
AX: Acumulador
Usado em operações aritméticas.
BX:Base
Usado para indexar tabelas de memória (ex.: índice de vetores).
CX:Contador
Usado como contador de repetições em loop e movimentação
repetitiva de dados.
DX:Dados
Uso geral.
Sobre Assembly
A linguagem de programação Assembly pode ser
considerada como uma família de linguagens já que
cada arquitetura de processador possui a sua.
Seu nome é frequentemente abreviado como ASM e é
muito comum o uso do termo Assembler para se
referir à linguagem embora isso seja errado, pois,
Assembler é a palavra usada para denominar o
programa que traduz o código Assembly, de fato, uma
possível tradução para o termo Assembler é
“montador”.
Linguagem de máquina
●
São linguagens voltadas para a máquina.
●
São baseadas no código binário utilizado diretamente pelo
computador.
●
Cadeias de 0s e 1s.
●
As instruções variam de processador para processador.
Vantagens: produz o único conjunto de instruções que um
computador entende sem um tradutor, criando códigos
concisos e eficientes além de serem consideravelmente
menores do que uma versão escrita em C.
Desvantagens: pouca portabilidade (em geral, um
programa para um processador não serve para outro);
programas não são estruturados e de difícil compreensão;
manutenção e correção de erros extremamente difícil.
Ling maquina
compilador
Um programa de computador que recebe um texto em
uma linguagem e gera texto equivalente em outra
linguagem. O texto usado na entrada é chamado de
código-fonte e o texto na saída é chamado de código-
objeto
Codigo fonte
entrada
Codigo objeto
compilador máquina
saída
compilador
●
Durante a compilação, o código fonte é analisado
(análise léxica, sintática e semântica), é gerado um
código intermediário e são construídas tabelas de
símbolos, alocam-se as áreas de memória para
variáveis e atribui-se os registradores a serem
utilizados, e é finalmente gerado o código objeto em
linguagem binária de máquina.
●
Em alguns compiladores, é gerado um código
intermediário em Assembly (que pode ser visualizado
pelo programador) e que em seguida passa pelo
montador para gerar finalmente o código objeto em
linguagem de máquina.
Primeiro compilador: A-0 (1952)
Grace Hopper, programadora do Harvard Mark I
Em 1949 contratada para desenvolver software para o
UNIVAC
A-0: programas que calculam seno, coseno, etc.
gravados em fita.
Programa desvia execução para posição na fita. Não é
exatamente um compilador....mas deu grandes ideias
para serem refinadas depois
Evoluções: A1 até A-3 → pseudocódigo
Termos usuais
Código-Fonte: Criado via editor de textos, contém os comandos da
linguagem de programação (C++, Pascal...) e serve como entrada para
o compilador.
Código-Objeto (PO) ou Arquivo Objeto: Criado pela conversão do PF
em linguagem de máquina. É gerado pelo montador, compilador ou
interpretador, quando não há erros no PF (extensões do código-objeto
mais comuns: .OBJ, .o)
Ligador ou Linkeditor: Combina o PO com as bibliotecas necessárias
a geração do PE (por exemplo, extensões das bibliotecas .DLL ou .LIB).
Programa Executável: Código passível de execução pelo SO
(extensão do PE: .EXE)
Tempo de Compilação: Intervalo de tempo decorrido para conversão
do PF em PO.
Tempo de Execução: Começa após a ativação do PE.
Evolução linguagens
No começo dos anos 90, o Fortran e o Pascal renasceram e
voltaram a ser surpreendentemente populares, mesmo quando
a C++ e a C dominavam o cenário. No meio dessa década, o
JavaScript e o Java cresceram rapidamente, ao lado de
linguagens mais jovens como Perl, PHP ou Visual Basic.
Nos anos 2000, o C começou a perder protagonismo para
algumas das alternativas já citadas ou outras mais novas,
como C#, Python ou Objetive C. Esta última cresceu com o
auge do iOS, e se consolidou com a popularidade absoluta do
Java, JavaScript e Python (esta última crescendo no âmbito da
IA), enquanto que as demais alternativas lutando para manter
a sua relevância.
Os mais veteranos na programação são fiéis ao Fortran e
Cobol, e grandes empresas seguem com sistemas quase
insubstituíveis e baseados nessas linguagens. Sem falar nas
plataformas de nicho, como Scala, R, Clojure ou Rust, que
geram muito interesse na comunidade de desenvolvedores.
Linha de Tempo das linguagens
https://en.wikipedia.org/wiki/Timeline_of_programming
_languages
Paradigmas de linguagem de prog
Atualmente existem quatro paradigmas de linguagens
de programação em uso comum:
●
Imperativas (e.g. C, Pascal, Fortran)
●
Funcionais (e.g. LISP, Scheme)
●
Lógicas/Declarativas (e.g. Prolog)
●
Orientadas-a-Objetos (e.g. Java, C++, C#)
exercicio
Leia os artigos
https://codeberryschool.com/blog/ptbr/qual-linguagem-
de-programacao-e-a-ideal-para-voce/
https://www.isbrasil.info/blog/5-nichos-de-programacao
-para-ficar-de-olho-nos-proximos-anos.html
Pesquise e elabore um ranking da atual posição das
linguagens de programação mais populares no
momento, explique como você chegou a este ranking,
qual critério adotou.

Mais conteúdo relacionado

Semelhante a paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf

Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoMonike Santos
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfmouzinhoconcursos
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptxbrayankedroksi
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430Texas Instruments
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 

Semelhante a paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf (20)

Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a Programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdf
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Lp m2
Lp m2Lp m2
Lp m2
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Software
SoftwareSoftware
Software
 

paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf

  • 1. PARADIGMAS DE PARADIGMAS DE LINGUAGEM DE LINGUAGEM DE PROGRAMAÇÃO PROGRAMAÇÃO AULA 1 AULA 1
  • 2. Apresentar os principais paradigmas de programação. Introduzir programação imperativa Introduzir programação orientada a objetos Introduzir programação funcional Introduzir programação Lógica Introduzir conceitos básicos de implementação de linguagens de programação.
  • 3. MOTIVAÇÃO ● Já em 1969, SAMMET listou 120 LPs que eram relativamente bem difundidas. Desde então muitas centenas de outras Lps surgiram (e desapareceram). ● A maioria dos programadores, todavia, nunca chega a usar mais do que umas poucas linguagens. Muitos não usam mais que uma ou duas em sua inteira vida profissional. ● Por que então estudar linguagens de programação?
  • 4. Porque estudar Linguagem de P ● Melhorar sua habilidade de desenvolver algoritmos (ex., uso eficiente de recursividade) ● Melhorar sua habilidade de usar a LP (ex., uso eficiente dos recursos de gerenciamento de memória) ● Aumentar o seu vocabulário de construção úteis de programação (ex., declarações repita até <repeat- until> e chaveamento <case> ou <switch>)
  • 5. Porque estudar Linguagem de P ● Melhor escolher uma linguagem de programação por conhecer seus pontos fortes e fracos ( ++ depende muito do conhecimento dos programadores). ● Torna mais fácil aprender novas LPs e acompanhar a tecnologia (ex., quanto mais LPs você souber, mais fácil se torna aprender uma nova LP). ● Torna mais fácil projetar novas linguagens de programação (ex.,algumas interfaces de usuário podem adquirir contornos de uma“linguagem de programação”). ● • E por último, abrangência de formação.
  • 6. Definição de LP Linguagem utilizada para enviar instruções a um computador. Como qualquer linguagem, apresenta símbolos e regras para a combinação desses símbolos. (adaptado de Downing et al. Dictionary of computer and Internet terms).
  • 7. Tipos de LP Linguagem de alto nível Ex.: C, C#, Objective-C, Java, Ruby, Python, Erlang, Clojure, Prolog, Processing. Linguagem de montagem (assembly) Ex.: Microsoft Macro Assembler. Linguagem de máquina Ex.: conjunto de instruções para processadores Intel. Contador := 0; LDA 4 STA A 0010 0100 0001 1010
  • 8. Linguagem de alto nivel ● São linguagens voltadas para o usuário (programador). ● Os comandos das linguagens apresentam um nível mais alto de abstração e próximos da linguagem humana. ● Necessitam de programas especiais (compiladores ou interpretadores) para traduzir o código para linguagem de máquina. Vantagens: têm maior portabilidade podendo ser executadas em várias plataformas com pouquíssimas modificações; não exigem conhecimento do código de máquina. Desvantagens: as rotinas geradas são mais genéricas e portanto mais complexas e por isso são mais lentas e ocupam mais memória (o código não é tão otimizado).
  • 9. Linguagem de montagem (assembly) ● São linguagens voltadas para a máquina e para o usuário. ● São linguagens intermediárias entre a linguagem de máquina e a linguagem de alto nível. ● As instruções são simplificações da linguagem de máquina que usam código mnemônicos (em inglês). Vantagens: comandos com sintaxe mais inteligível que nas linguagens de máquina. Desvantagens: alguns mnemônicos ainda são de difícil compreensão; ainda dependente da arquitetura do computador em questão.
  • 10.
  • 11. Linguagem de alto nível Begin var op1, op2, r: integer; r := 0; while op2 > 0 do begin r := r + op1; op2 := op2 - 1; end End Linguagem intermediária Begin var op1, op2, r: integer; r := 0; laço : if op2 = 0 go to fim; r := r + op1; op2 := op2 - 1; go to laço; fim: End.
  • 12. Ling montagem (Assembly) A forma geral de uma instruçao assembly e mnemonica [operando1[,operando2[,operando3]]]
  • 13. programa assembly muda o tamanho do cursor .MODEL SMALL ;modelo de memória .STACK ;espaço de memória para instruções do programa na pilha .CODE ;as linhas seguintes são instruções do programa mov ah,01h ;move o valor 01h para o registrador ah mov cx,07h ;move o valor 07h para o registrador cx int 10h ;interrupção 10h mov ah,4ch ;move o valor 4ch para o registrador ah int 21h ;interrupção 21h .DATA x db 1 END ;finaliza o codigo do programa
  • 14. A memória é dividida em um número arbitrário de segmentos .MODEL SMALL .STACK .CODE .DATA END CODIGO DADOS PILHA
  • 15. Registradores de Uso Geral AX BX CX DX (16 bits) AH/AL BH/BL CH/CL DH/DL (8 bits) AX: Acumulador Usado em operações aritméticas. BX:Base Usado para indexar tabelas de memória (ex.: índice de vetores). CX:Contador Usado como contador de repetições em loop e movimentação repetitiva de dados. DX:Dados Uso geral.
  • 16. Sobre Assembly A linguagem de programação Assembly pode ser considerada como uma família de linguagens já que cada arquitetura de processador possui a sua. Seu nome é frequentemente abreviado como ASM e é muito comum o uso do termo Assembler para se referir à linguagem embora isso seja errado, pois, Assembler é a palavra usada para denominar o programa que traduz o código Assembly, de fato, uma possível tradução para o termo Assembler é “montador”.
  • 17. Linguagem de máquina ● São linguagens voltadas para a máquina. ● São baseadas no código binário utilizado diretamente pelo computador. ● Cadeias de 0s e 1s. ● As instruções variam de processador para processador. Vantagens: produz o único conjunto de instruções que um computador entende sem um tradutor, criando códigos concisos e eficientes além de serem consideravelmente menores do que uma versão escrita em C. Desvantagens: pouca portabilidade (em geral, um programa para um processador não serve para outro); programas não são estruturados e de difícil compreensão; manutenção e correção de erros extremamente difícil.
  • 19. compilador Um programa de computador que recebe um texto em uma linguagem e gera texto equivalente em outra linguagem. O texto usado na entrada é chamado de código-fonte e o texto na saída é chamado de código- objeto Codigo fonte entrada Codigo objeto compilador máquina saída
  • 20. compilador ● Durante a compilação, o código fonte é analisado (análise léxica, sintática e semântica), é gerado um código intermediário e são construídas tabelas de símbolos, alocam-se as áreas de memória para variáveis e atribui-se os registradores a serem utilizados, e é finalmente gerado o código objeto em linguagem binária de máquina. ● Em alguns compiladores, é gerado um código intermediário em Assembly (que pode ser visualizado pelo programador) e que em seguida passa pelo montador para gerar finalmente o código objeto em linguagem de máquina.
  • 21. Primeiro compilador: A-0 (1952) Grace Hopper, programadora do Harvard Mark I Em 1949 contratada para desenvolver software para o UNIVAC A-0: programas que calculam seno, coseno, etc. gravados em fita. Programa desvia execução para posição na fita. Não é exatamente um compilador....mas deu grandes ideias para serem refinadas depois Evoluções: A1 até A-3 → pseudocódigo
  • 22. Termos usuais Código-Fonte: Criado via editor de textos, contém os comandos da linguagem de programação (C++, Pascal...) e serve como entrada para o compilador. Código-Objeto (PO) ou Arquivo Objeto: Criado pela conversão do PF em linguagem de máquina. É gerado pelo montador, compilador ou interpretador, quando não há erros no PF (extensões do código-objeto mais comuns: .OBJ, .o) Ligador ou Linkeditor: Combina o PO com as bibliotecas necessárias a geração do PE (por exemplo, extensões das bibliotecas .DLL ou .LIB). Programa Executável: Código passível de execução pelo SO (extensão do PE: .EXE) Tempo de Compilação: Intervalo de tempo decorrido para conversão do PF em PO. Tempo de Execução: Começa após a ativação do PE.
  • 23. Evolução linguagens No começo dos anos 90, o Fortran e o Pascal renasceram e voltaram a ser surpreendentemente populares, mesmo quando a C++ e a C dominavam o cenário. No meio dessa década, o JavaScript e o Java cresceram rapidamente, ao lado de linguagens mais jovens como Perl, PHP ou Visual Basic. Nos anos 2000, o C começou a perder protagonismo para algumas das alternativas já citadas ou outras mais novas, como C#, Python ou Objetive C. Esta última cresceu com o auge do iOS, e se consolidou com a popularidade absoluta do Java, JavaScript e Python (esta última crescendo no âmbito da IA), enquanto que as demais alternativas lutando para manter a sua relevância.
  • 24. Os mais veteranos na programação são fiéis ao Fortran e Cobol, e grandes empresas seguem com sistemas quase insubstituíveis e baseados nessas linguagens. Sem falar nas plataformas de nicho, como Scala, R, Clojure ou Rust, que geram muito interesse na comunidade de desenvolvedores. Linha de Tempo das linguagens https://en.wikipedia.org/wiki/Timeline_of_programming _languages
  • 25. Paradigmas de linguagem de prog Atualmente existem quatro paradigmas de linguagens de programação em uso comum: ● Imperativas (e.g. C, Pascal, Fortran) ● Funcionais (e.g. LISP, Scheme) ● Lógicas/Declarativas (e.g. Prolog) ● Orientadas-a-Objetos (e.g. Java, C++, C#)
  • 26. exercicio Leia os artigos https://codeberryschool.com/blog/ptbr/qual-linguagem- de-programacao-e-a-ideal-para-voce/ https://www.isbrasil.info/blog/5-nichos-de-programacao -para-ficar-de-olho-nos-proximos-anos.html Pesquise e elabore um ranking da atual posição das linguagens de programação mais populares no momento, explique como você chegou a este ranking, qual critério adotou.