Você está na página 1de 15

Linguagem de Programação

(Licenciatura em Estatística e Gestão de Informação)

Universidade Rovuma
Nampula
2023
Linguagem de Programação

Trabalho de pesquisa de carácter avaliativo, na


Laboratório de Informática Java (LI) 4º Ano a ser
apresentado no Departamento de Ciências
Naturais Matemática e Estatística.

Universidade Rovuma

Nampula

2023
Índice
Introdução .................................................................................................................................. 4

Linguagens de Programação ...................................................................................................... 5

Características de Linguagens de Programação ......................................................................... 6

Tipos de Linguagem de Programação........................................................................................ 7

Visão Geral de Linguagens de Programação e de Paradigma de Programação ...................... 10

Evolução da Linguagem Java .................................................................................................. 12

Conclusão................................................................................................................................. 14

Referencias Bibliográficas ....................................................................................................... 15


4

Introdução
O presente trabalho com o tema Linguagem de Programação vai fazer menção sobre a definição
da mesma que se refere a um conjunto de regras e instruções que um programador usa onde ele
constrói para gerar programas e softwares que serão processados por um computador,
dispositivo móvel ou outro equipamento. Por outro ado serão destacados alguns paradigmas,
os tipos e bem como a evolução da linguagem de programação

De um modo geral quando é estruturada ela forma o código fonte de um software e informa a
uma ferramenta quais ações ela deve tomar, por exemplo. A utilização da linguagem de
programação se popularizou porque ela gera mais produtividade para os programadores em
relação ao uso do código de máquina, que são as instruções que o computador compreende de
fábrica. Com isso, assim o dispositivo tem uma facilidade maior de compreender o que deve
ser feito, além de se tornar menos dependente de ambientes computacionais específicos. A
linguagem é composta por símbolos, palavras-chave, regras semânticas e sintáticas e são
classificadas em níveis.
5

Linguagens de Programação

Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas


para escrever programas de computador. Esses programas instruem o computador a realizar
determinadas tarefas específicas. Cada linguagem possui um conjunto único de palavras-
chaves (palavras que ela reconhece) e uma sintaxe (regras) específica para organizar as
instruções dos programas.

Os programas de computador podem ser escritos em várias linguagens de programação,


algumas diretamente compreensíveis pelo computador e outras que exigem passos de tradução
intermediária. As linguagens de programação podem ser divididas em três tipos, com relação
à sua similaridade com a linguagem humana: Linguagem de máquina; Linguagem simbólica;
Linguagem de alto nível.

Linguagem de Máquina (machine languale):

É a linguagem de mais baixo nível de entendimento pelo ser humano e a única, na verdade,
entendida pelo processador (UCP). É constituída inteiramente de números, o que torna
praticamente impossível entendê-la diretamente. Cada UCP tem seu conjunto único de
instruções que definem sua linguagem de máquina, estabelecido pelo fabricante do chip. Uma
instrução típica em linguagem de máquina seria algo como: 0100 1111 1010 Essa linguagem é
também classificada como uma linguagem de primeira geração.

Linguagens de Programação Linguagem Simbólica (assembly):

É a linguagem de nível imediatamente acima da linguagem de máquina. Ela possui a mesma


estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o
programador utilize nomes (chamados mnemônicos) e símbolos em lugar de números. A
linguagem simbólica é também única para cada tipo de UCP, de forma que um programa escrito
em linguagem simbólica para uma UCP poderá não ser executado em outra UCP de uma
família diferente. Nos primórdios da programação todos os programas eram escritos nessa
linguagem. Hoje a linguagem simbólica, é utilizada quando a velocidade de execução ou o
tamanho do programa executável gerado são essenciais. A conversão da linguagem simbólica
6

para a linguagem de máquina se chama montagem, e é feito por um programa chamado


montador (ou assembler). Uma típica instrução em linguagem simbólica seria: ADD A,B. Essa
linguagem é também classificada como linguagem de segunda geração, e, assim como a
linguagem de máquina, é considerada uma linguagem de baixo nível.

Linguagem de Alto Nível:

São as linguagens de programação que possuem uma estrutura e palavras-chave que são mais
próximas da linguagem humana. Tornando os programas mais fáceis de serem lidos e escritos.
Esta é a sua principal vantagem sobre as linguagens de nível mais baixo. Os programas escritos
nessas linguagens são convertidos para a linguagem de baixo nível através de um programa
denominado compilador ou de um interpretador. Uma instrução típica de uma linguagem de
alto nível é: if (A>10) then A:=A-7; 73.

Características de Linguagens de Programação

Uma linguagem de programação é caracterizada em termos de uma gramática e um significado


bem definidos. Além disso, a linguagem deve ser implementável (executável) com eficiência
aceitável e deve ser universal, no sentido que deve ser possível expressar todo problema
computável nesta linguagem; recursão, comandos de iteração (como while loops) ou mesmo
comandos de desvio (como go to) são suficientes para garantir universalidade a uma linguagem
de programação.

Esta característica distingue uma linguagem de programação de, por exemplo, uma linguagem
de consulta a banco de dados (query languages). Alguns autores [Watt 1990 & 2004]
consideram ainda que uma linguagem deve permitir uma expressão natural de problemas em
um certo domínio de aplicação, apesar de este ser um critério subjetivo. A gramática de uma
linguagem é usualmente apresentada em termos de regras de formação que definem uma
sintaxe precisa, estabelecendo que programas são bem formados na linguagem, com relação a
aspectos estáticos. A notação padrão para se definir a sintaxe de uma linguagem é a BNF
(Backus-Naur form) [Backus 1978], conforme será extensivamente ilustrado neste texto. Uma
análise mais ampla da validade de um programa inclui, adicionalmente, aspectos dinâmicos,
como a definição de um sistema que permita verificação do uso coerente dos tipos de dados da
linguagem.
7

No mundo de TI existem várias linguagens usadas para diferentes propósitos. Veja algumas:
 Marcação: é uma linguagem que serve para marcar elementos (conhecido também como nós
ou tags) e dados em um arquivo de texto. Ela pode ser usada para construir páginas web
(exemplo: a linguagem HTML) e também para transferir e armazenar dados (exemplo: a
linguagem XML).
 Folha de Estilos: as páginas web são estilizadas com a linguagem CSS, usada para definir
folhas de estilos.
 Programação: usada por um programador para conversar com sistemas e equipamentos. Em
geral, serve para desenvolver software.
 Simulação: algumas linguagens de programação podem ser usadas para simulações físicas e
matemáticas (por exemplo, no software Matlab ou Maple), sem que o objetivo final seja gerar
um software.

Tipos de Linguagem de Programação


Relativamente aos tipos de linguagem de programação pode ser de nível alto ou baixo. As
chamadas de alto nível possuem uma construção linguística que se aproxima mais da forma
humana de se comunicar. Por exemplo, é comum ver termos em inglês como “delete” que
oferecem instruções para que o programa apague alguma informação. Isso torna esse modelo
um pouco mais intuitivo e fácil de aprender.

Por outro lado a linguagem de baixo nível, utiliza comandos mais complexos e o código
binário, que são sequências combinadas dos números 0 e 1. Isso otimiza a comunicação com a
máquina, aumentando a agilidade do processo. Os diferentes tipos funcionam melhor de acordo
com o objetivo que se busca atingir.

Além disso, existem outras formas de classificação levando em conta o paradigma de


programação, estrutura dos tipos, grau de abstração, geração ou seguindo as categorias da
Association for Computing Machinery (ou Associação de Máquinas de Computação, em
português.

Uma linguagem de programação pode fazer parte de diferentes classificações, mas existem
algumas que são essenciais para qualquer programador ou profissional de tecnologia. Segundo
um levantamento realizado pela consultoria de programação norte-americana RedMonk, as
8

linguagens de programação mais populares são JavaScript, Python, Java, PHP, CSS, C#, C++
e C. Ainda que existam inúmeras linguagens, entenda um pouco sobre as principais:

JavaScript

É uma linguagem compilada de alto nível muito utilizada em sites front-end e no


desenvolvimento de jogos. Empresas como WordPress, Khan Academy, Linkedin e Groupon
utilizam essa língua em suas plataformas. Também é considerada uma ótima linguagem para
quem está começando no mundo da programação.

Phyton

É uma linguagem de programação de alto nível e de propósito generalista. Sua filosofia de


design enfatiza a legibilidade do código com a proposta de ser de fácil compreensão com o uso
de palavras-chave em inglês. Não costuma utilizar recursos gráficos como chaves e colchetes
para delimitar blocos.

Java

Ao contrário do que o nome pode levar a crer, Java e JavaScript não são linguagens que derivam
uma da outra ou similares. É uma linguagem de alto nível projetada para ter o menor número
possível de dependências de implementação. Dessa forma, os programadores escrevem o
código uma única vez e ele pode ser executado em qualquer plataforma que comporte essa
linguagem de programação.

PHP

É uma linguagem de uso geral e livre distribuição voltada para a criação de sistemas web.
Como utiliza o código aberto, os desenvolvedores conseguem mexer nela e aprimorar suas
funcionalidades. Possui funções similares à linguagem C, que também pode ser utilizada para
extensões na PHP. Além disso, pode ser utilizada para o controle de drones.

CSS

O nome é uma abreviação de Cascading Style Sheets (ou Folhas de Estilo em Cascata, em
português) e é uma linguagem estilística que atua na forma como um documento escrito em
9

HTML ou em XML é apresentado visualmente. É uma das principais linguagens da open web
auxiliando na estilização e organização de páginas web.

C#, C++ e C

Apesar de utilizarem a mesma letra, estas são três linguagens diferentes. A C# é uma linguagem
de programação simples e de propósito geral que auxilia no desenvolvimento de princípios de
engenharia de software. É utilizada para escrever aplicativos para sistemas hospedados e
incorporados. Já a C++ é de uso geral criada como uma extensão da linguagem C para
programação de sistemas e softwares incorporados, com recursos limitados e grandes sistemas.
É bastante utilizada em aplicativos de desktop, videogames e servidores.

Enquanto isso, a linguagem C é voltada para programação estruturada e instruções de máquinas


típicas. É bastante utilizada em aplicativos previamente codificados em linguagem assembly.
Apesar de seus recursos de baixo nível, a linguagem foi projetada para incentivar a
programação entre plataformas.

Swift

A linguagem de programação Swift está entre uma das mais recentes a surgir no mercado.
Inicialmente, quando foi lançada, a Swift era uma alternativa à Objective-C – a principal
linguagem para produtos Apple.
Os desenvolvedores foram passando a utilizar a linguagem Swift porque ela oferece
recursos mais modernos, como programação simultânea ou concorrente, e gerenciamento
automático de memória. Também é muito mais rápido e simples de escrever em Swift do
que em Objective-C.
Como resultado, a linguagem de programação Swift é certamente a melhor opção para
desenvolvimento de produtos Apple e uma das alternativas de programação que mais
rapidamente cresce no mercado.

Go
A linguagem de programação Go, ou Golang, foi criada visando o desenvolvimento de
APIs, aplicações desktop baseadas em GUI, e aplicações web. Por mais que seja uma
10

linguagem jovem, que recentemente entrou no mercado, a Go é uma das linguagens que
mais rapidamente cresce no mundo da programação.
A programação simultânea ou concorrente (concurrent programming) é uma de suas
principais características. Este recurso permite que os programadores trabalhem com
CPUs de múltiplos núcleos e com uma base de códigos massiva.
Combinando essa funcionalidade com o excelente desempenho da Golang, ela se torna a
linguagem de programação perfeita para criar algoritmos, servidores web e funis de dados
(data pipelines).
A melhor notícia é que a linguagem de programação Go é relativamente mais simples que
outras linguagens de programação. Com o módulo leve chamado Goroutines e
suas threads, os programadores só precisam adicionar a sintaxe Golang para fazer uma
função rodar como um subprocesso.
Além disso tudo, a linguagem Go tem se tornado uma das mais populares na busca por
aprendizados em programação. Apesar de sua sintaxe ser baseada em C, a linguagem
Golang é mais fácil de ser compreendida devido à sua simplicidade.

Visão Geral de Linguagens de Programação e de Paradigma de


Programação
Desde o surgimento da primeira linguagem de programação de alto nível, Fortran, na década
de 1950, uma grande variedade de linguagens de programação tem sido proposta, como
conseqüência de domínios de aplicação distintos, avanços tecnológicos e interesses comerciais,
dentre outros aspectos. Algumas linguagens compartilham características em comum e são
ditas pertencerem a um mesmo paradigma: um modelo, padrão ou estilo de programação. A
classificação de linguagens em paradigmas é uma conseqüência de decisões de projeto que
impactam radicalmente a forma na qual uma aplicação real é modelada do ponto de vista
computacional.

Os quatro paradigmas mais estabelecidos são o imperativo [Watt 1990], o lógico [Kowalski
1985], o funcional [Bird 1998] e o orientado a objetos [Meyer 1988]. Cada um possui conceitos
e características que influenciam um estilo próprio de programação. Nos paradigmas
imperativo e funcional, o modelo computacional é o de uma função que, portanto, mapeia
entradas em saídas de forma determinística. Entretanto, enquanto em um programa imperativo
este mapeamento é direto, através de funções definidas como na matemática, em um programa
11

imperativo tal mapeamento é indireto, via estados explicitamente modelados por variáveis
globais e locais do programa em execução. A Figuras 1 ilustra o modelo computacional dos
dois paradigmas.

Modelos computacionais dos paradigmas imperativo e funcional

Entrada Programa Saida Entrada Programa Saida

Estado
a)Paradigma Imperativo b)ParadigmaFuncional

O modelo computacional do paradigma orientado a objetos também é uma função; como no


paradigma imperativo, a computação envolve estados explícitos. Cada objeto possui seu estado
próprio, formado pela valoração dos respectivos atributos durante a execução do programa.
Portanto, estritamente, este paradigma pode ser considerado imperativo [Watt 2004]. Por outro
lado, orientação a objetos oferece uma série de mecanismos de estruturação (classes, herança,
polimorfismo, mecanismos de visibilidade, ligação dinâmica - dynamic binding - entre outras
características) que induz a uma forma particular de modelar as aplicações computacionais. Em
particular, o estado de uma aplicação, ao invés de monolítico como em um programa
imperativo típico, é particionado entre os objetos ativos durante a execução. Os mecanismos
de visibilidade (essencialmente os atributos privados) permitem um controle de acesso e
atualização de cada partição. O modelo computacional de um programa orientado a objetos.
Note que ações (comandos) do programa podem envolver invocação de métodos que alteram
o estado de um objeto específico, ao invés de um estado único da aplicação. O estado de cada
objeto pode, obviamente, envolver outros objetos, criando uma estrutura hierárquica com
complexidade arbitrária.
12

No paradigma lógico, há uma mudança mais substancial do modelo computacional. Ao invés


de uma função, a execução é baseada em relação entre entrada e saída. Em princípio, isto
permite uma execução nos dois sentidos. Por exemplo, um compilador modelado como um
programa lógico que relaciona código fonte e destino pode ser utilizado tanto como um
compilador quanto como um decompilador, gerando um programa fonte dado um programa
destino [Bowen 1993].

Uma outra questão interessante, como discutido em [Watt 2004], é se concorrência deve ser
considerado um paradigma. Enquanto orientação a objetos (pelo menos do ponto de vista
seqüencial) enfatiza a distribuição do estado de um programa, concorrência está relacionada
com a distribuição do fluxo de controle da aplicação. Portanto, programas imperativos,
orientados a objetos e lógicos podem ser seqüenciais ou concorrentes. Em particular, o recente
paradigma de agentes [Shoham 1993] inclui elementos autônomos (agentes) que podem ser
considerados objetos ativos (com fluxo de controle independente). Neste paradigma, dados e
controle são distribuídos. O operador || representa a execução paralela dos diversos objetos
ativos

Evolução da Linguagem Java

A linguagem Java surgiu a partir de uma pesquisa financiada pela Sun Microsystems em 1991,
iniciada sob o codinome de projeto Green.

Com o intuito de se tornar uma linguagem para dispositivos inteligentes destinados ao usuário
final e com a premissa de ser uma linguagem próxima as linguagens C e C++ e que pudesse
ser executado em diversos hardwares.

A princípio, o projeto não teve bons resultados devido à lentidão do crescimento da área de
dispositivos eletrônicos inteligentes, porém com a grande revolução da World Wide Web em
1993, logo se notou o potencial da linguagem para geração de conteúdo dinâmico, o que deu
nova força ao projeto.

Inicialmente Java foi batizada de Oak por seu criador (James Gosling), tempos mais tarde,
descobriu-se que já existia uma linguagem de programação chamada Oak. Com isso, em uma
visita da equipe de desenvolvimento a uma cafeteria local, o nome Java surgiu (nome do café)
e logo foi denominada a linguagem.
13

Em março de 1995 foi anunciado no evento SunWorld a tecnologia Java 1.0, inicialmente o
foco principal da tecnologia utilizado para divulgação foram os Applets, pequenas aplicações
que poderiam ser executadas via web através de um browser.

Em 1998 foi lançado a versão 1.2 (codinome “Playground”) da linguagem Java, está nova
versão trouxe uma quantidade muito grande de novas funcionalidades, essa alteração foi tão
grande que a pessoa do marketing começou a chamar de Java 2.

As versões 1.3 (codinome “Kestrel”) lançada em 2000 e 1.4 (codinome “Merlin”) lançada em
2002 continuaram sendo chamado de Java 2, pois houveram alterações e melhorias na
linguagem mas não tão grandes como na versão 1.2.

Na versão 1.5 lançada em 2004 o pessoal resolveu mudar novamente chamando de Java 5
(codinome “Tiger”), a partir desta versão foi padronizado as novas atualizações.

Em 2006 o Java 6 (codinome “Mustang”) e atualmente o Java está na versão 6 update 26 e a


versão 7 tem o codinome “Dolphin”.

Java também é uma linguagem Open Source e não possui um único dono, todas novas
atualizações da linguagem são feitas através da JCP (Java Community Process), formada por
um conjunto de empresas.
14

Conclusão
O trabalho concluído ao longo do seu desenvolver pude perceber que sem a linguagem de
programação, a programação seria impossível porque não haveria regras (semânticas e
sintáticas), expressões (como a estrutura e o significado de todos os elementos que as
compõem) ou uma maneira estabelecida de como programador e máquina deveriam “falar”
entre si.

Além disso, algumas das funções que permitem ao programador criar essa linguagem são: criar
um site e fazê-lo funcionar, desenvolver aplicativos para sistemas operacionais e muitos outros.

Portanto, atualmente o conhecimento e o uso do mundo digital e computacional são duas das
principais armas de qualquer empresa.
15

Referencias Bibliográficas
 Backus, J. (1978) “Can Programming be liberated from the von Neumann style?: a
functional style and its algebra of programs”, Communications of the ACM, Vol. 21,
No. 8.
 Bird, R. Introduction to Functional Programming Using Haskell, Prentice Hall, 1998.
 Bowen, J. (1993) “From Programs to Object Code and back again using Logic
Programming: Compilation and Decompilation”, Journal of Software Maintenance:
Research and Practice, 5(4):205-234..
 Scott, Michael L (2006). Programming Language Pragmatics (em inglês) 2ª ed.
Boston: Morgan Kauffman. p. 14-15. 875 páginas.
 Fischer, Alice E.; Grodzinsky, Frances (1993). The Anatomy of Programming
Languages (em inglês). Englewood Cliffs, Nova Jérsia: Prentice Hall. p. 3.
557 páginas. ISBN 0-13-035155-5

Você também pode gostar