Algoritmo?
Usamos algoritmos no dia-a-dia geralmente sem perceber, por exemplo em uma receita de bolo, é preciso seguir as instruções para chegar a uma conclusão.
Para que o computador consiga entender, ele precisa de uma linguagem específica, estas linguagens utilizam uma lógica para serem escritas e é aí que entram os algoritmos.
Definição: algoritmo é uma sequência lógica, finita, não ambígua e definida de instruções que devem ser seguidas para resolver um problema ou executar uma tarefa.
Uma linguagem de
programação serve como meio de comunicação entre o
indivíduo que deseja resolver um determinado problema e o
computador.
Característica de uma Linguagem de Programação
Legibilidade: facilidade de ler e escrever programas, Simplicidade: que cada conceito seja simples de aprender e dominar, Expressividade: representação clara e simples de dados e procedimentos a serem executados pelo programa, Ortogonalidade: construções primitivas podem ser combinadas para construir as estruturas de controle de dados, Portabilidade: -multiplataforma: capacidade de um software rodar em diferentes plataformas sem a necessidade de maiores adaptações; -longevidade: possibilidade de usar o mesmo software após ema mudança de hardware. , Confiabilidade: software de acordo com as especificações
● E m resumo
– Legibilidade e facilidade de escrita melhoram
confiabilidade.
– A dificuldade em escrever ou entender o algoritmo
resulta em potenciais erros de programação
Simplicidade X Ortogonalidade
A ortogonalidade é fortemente relacionada à simplicidade: quanto mais ortogonal o projeto de uma linguagem, menor é o número necessário de exceções às regras da linguagem. Menos exceções significam um maior grau de regularidade no projeto, o que torna a linguagem mais fácil de aprender, ler e entender.
Histórico
● Inicialmente, a programação de computadores
se resumia a Assembly ou algo similar
● Na década de 50, diversas linguagens
surgiram, as quais são as ancestrais das
linguagens que usamos hoje em dia
● Fortran
● COBOL
● LISP
● Algol 60
Histórico
Histórico
● Na década de 80 os projetistas de linguagens
passaram a considerar requisitos de mais alto
nível, como desempenho, programação em
larga escala e estruturas mais inteligentes
● C++
● Ada
● Eiffel
● Perl
Histórico
● Na década de 90 entramos na era da internet,
onde as linguagens passam a se importar com
conexão à rede, integração com navegadores,
etc (preocupações da década anterior ainda
persistem)
● Python
● Java
● Haskell
● Ruby
● PHP
● C#
Paradigma?
Paradigma é um modelo ou padrão de raciocínio a seguir, seria a maneira como um determinado programador resolve um certo problema, como o programador estrutura e executa este programa.
Os quatro principais paradigmas de programação são: paradigma imperativo, declarativo, funcional e orientado a objetos.
Paradigma Imperativo
“Primeiro faça isso e depois faça aquilo.”
Imperatividade dá a ideia de dar ordens
Baseado em instruções e comandos, o programador diz como e o quê exatamente um programa ou rotina deve realizar.
Instruções como if, while, switch e for são típicas de linguagens de programação imperativas.
O fundamento da programação imperativa é o conceito de Máquina de Turing, dispositivo teórico (imaginário) conhecido como máquina universal, invenção automática capaz de manipular símbolos em uma fita de acordo com uma série de regras para guardar informação.que nada mais é que uma abstração matemática que corresponde ao conjunto de funções computáveis.
Na Segunda Guerra Mundial, a máquina ENIAC foi desenvolvida, custos de manutenção e implementação eram muito altos. John von Neumman reconheceu que um programa e suas variáveis podem residir na memória principal de um computador. O paradigma imperarivo é criado para da suporte a essa nova arquitetura. Os comandos são executados na ordem que aparecem na memória. C ADA JAVA
Atribuições, Declarações e Expressões
Atribuição: Alterar o valor de um local da memória e destruir o valor anterior.
Declaração de variável: NOME a um local de memória e TIPO a valores armazenados.
Interpretar Expressões
Recuperar valores em um determinado endereço de memória.
linguagens puramente imperativas, como Assembly
Ex: ADA, BASIC, Fortran;Pascal; Python; Lua; COBOL, FORTRAN, C, PASCAL …
https://medium.com/@phinfonet/programa%C3%A7%C3%A3o-funcional-o-que-diabos-%C3%A9-isso-da9f230b9be2
Paradigma funcional
“Subdividir o problema em outras funções e resolver cada uma separadamente, pois os resultados encontrados serão utilizados posteriormente.”
Paradigma lógico
“Oferecer um arcabouço(estrutura) que permita inferir conclusões desejadas, a partir de premissas, representando o conhecimento disponível, de uma forma que seja computacionalmente viável”.Faz uso da lógica matemática, a abordagem do paradigma lógico é expressar programas na forma de lógica simbólica(faz uso de símbolos) e usar um processo de inferência lógica (executar uma dedução ou demonstração) para produzir resultados
- Projetos estourando o orçamento;
- Projetos estourando o prazo;
- Software de baixa qualidade;
- Software muitas vezes não satisfaz os requisitos;
- Projetos ingerenciáveis e código difícil de manter.
- Análise Econômica de Sistemas de Informação;
- O uso de melhores técnicas, métodos e ferramentas;
- Interesse do governo em treinamentos e educação[carece de fontes];
- A mudança de paradigma sobre o que é desenvolver software e como deveria ser feito.
https://www.profissionaisti.com.br/2010/10/paradigmas-de-programacao/
https://www.infoescola.com/informatica/historia-da-programacao/
https://universidadedatecnologia.com.br/linguagem-de-programacao-criterios/
http://www.linhadecodigo.com.br/artigo/489/linguagem-de-programacao.aspx