quarta-feira, 21 de maio de 2014

Visão geral sobre linguagens de programação e Frameworks



Computação Básica


 

Linguagem de Máquina e Linguagem de Montagem

A linguagem de máquina é o código que somente o computador interpreta. Nesse código tem todas as instruções com as informações necessárias para um computador executá-las. Porém não é inteligível a humanos.
A linguagem de montagem é um código que já pode ser interpretado por pessoas, porém ainda está bem próximo do que será executado pela máquina(computador). Cada instrução de montagem corresponde a uma instrução de máquina geralmente.
Exemplo de código de Montagem e código de Máquina: Código de Montagem:
Mov AX, [BX]
Código de Máquina:
0100101011001100100110
Acima segue um exemplo de como funciona o assembler. O assembler ou montador é o responsável por traduzir o código de Montagem para o código de máquina Cada instrução de linguagem Assembly(de montagem) vira um, dois ou mais bytes de instruções de linguagem de máquina.

 Registradores

O Registrador de uma CPU é uma unidade de memória capaz de armazenar n bits. Os registradores estão no topo da hierarquia de memória, sendo assim, são o meio mais rápido e caro de se armazenar um dado.
Lembrando que os registradores são circuitos digitais capazes de armazenar e deslocar informações binárias, e são tipicamente usados como um dispositivo de armazenamento temporário.
São utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores. Então, as instruções que utilizam estes dados são executadas pelo
processador e, finalmente, os dados são movidos de volta para a memória principal.

 Interrupções

Uma interrupção em um Sistema Operacional é um sinal de um dispositivo que tipicamente resulta em uma troca de contextos, isto é, o processador para de fazer o que está fazendo para atender o dispositivo que pediu uma interrupção.
A principal motivação para ocorrer interrupções em um Sistema Operacional é a entrada e a saída de dados. Não é interessante que a CPU tenha que ficar continuamente monitorando o status de dispositivos como discos ou teclados. O mecanismo de interrupções permite que o hardware "chame a atenção" da CPU quando há algo a ser feito.

Interrupções assíncronas e síncronas

Interrupções geradas por algum dispositivo externo à CPU, como teclado ou controlador de disco, são chamadas de interrupções de hardware ou assíncronas (ocorrem independentemente das instruções que a CPU está executando).
Quando ocorre uma interrupção, a CPU interrompe o processamento do programa em execução e executa um pedaço de código (tipicamente parte do sistema operacional) chamado de tratador de interrupção. Em muitos casos, após a execução do tratador, a CPU volta a executar o programa interrompido.

Linguagens de Programação 

 

Segue abaixo algumas das linguagens de programação mais conhecidas no mercado de desenvolvimento.

C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).
C é uma das linguagens de programação mais populare e existem poucas arquiteturas para as quais não existem compiladores para C. C tem influenciado muitas outras linguagens de programação, mais notavelmente C++, que originalmente começou como uma extensão para C.
O que é um Ponteiro?
Um ponteiro em linguagem C nada mais é que um endereço na memória. Ponteiro é um dado que esta referenciado na memória.

Exemplo de Alô Mundo: 

 

#incluce <stdio.h>
main () {
printf (“Alo Mundo”);

Pascal 

 

A linguagem Pascal foi criada para incentivar a programação modular e estruturada, facilitando a criação de procedimentos com baixo acoplamento e alta coesão. Um programa em Pascal é composto de constantes e variáveis globais, procedimentos e funções re-entrantes e um programa principal.
Procedimentos não retornam valores, funções sim. Tanto em procedimentos quanto em funções os parâmetros podem ser passados por referência ou por valor. É possível passar vetores e matrizes com o tamanho, mas não a quantidade de dimensões, especificado no tempo de execução.
Procedimentos e funções podem conter, dentro de seu escopo, novos procedimentos e funções. Dentro de qualquer parte do programa também podem ser criados blocos com os comandos BEGIN e END, que também possuem seu próprio escopo.6 Nas versões originais, as variáveis só podiam ser declaradas em posições específicas e não ao decorrer do programa, o que limitava a regra de escopo.
O conjunto de procedimentos e funções pré-definidos é fixo e inclui as funções read, readln, write e writeln, para realizar E/S.

Exemplo de Alô Mundo: 

 

program OlaMundo;
begin
WriteLn('Alo Mundo!');
end

Delphi 

 

Delphi, anteriormente conhecido como CodeGear Delphi, Inprise Delphi e Borland Delphi, também conhecido como Delphi, é um compilador e uma IDE, produzido antigamente pela Borland Software Corporation e atualmente produzido pela Embarcadero. O Delphi, originalmente direcionado para a plataforma Windows, chegou a ser usado para desenvolvimento de aplicações nativas para Linux através do Kylix (o Kylix é um IDE para as linguagens C++ e Object Pascal), e para o framework Microsoft .NET em suas versões mais recentes. O desenvolvimento do Kylix foi descontinuado.
Atualmente há um projeto chamado Lazarus que possui uma interface muito semelhante ao Delphi e a característica de ser multiplataforma, ou seja, roda em Linux, Windows, OS/2, Mac OS tradicional, Mac OS X, ARM, BSD, BeOS, DOS, CORO e mais.
O Delphi é muito utilizado no desenvolvimento de aplicações desktop, aplicações multicamadas e cliente/servidor, compatível com os bancos de dados mais conhecidos do mercado. O Delphi pode ser utilizado para diversos tipos de desenvolvimento de projeto, abrangendo desde Serviços a Aplicações Web e CTI. O nome Delphi é inspirado na cidade de Delfos, o único local na Grécia antiga em que era possível consultar o Oráculo de Delfos. O nome deve-se ao fato de que os desenvolvedores do compilador buscavam uma ferramenta capaz de acessar o banco de dados Oracle - daí o trocadilho: "a única maneira de acessar o oráculo é usando Delphi".

Exemplo Alô Mundo: 

 

begin
ShowMessage ('Olá, Mundo!');
end

Visual Basic 

 

O Visual Basic (abreviado como VB) é uma linguagem de programação produzida pela empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio. Sua versão mais recente faz parte do pacote Visual Studio .NET, voltada para aplicações .Net. Sua versão anterior fez parte do Microsoft Visual Studio 6.0, ainda muito utilizado atualmente por aplicações legadas.
Um aperfeiçoamento do BASIC, a linguagem é dirigida por eventos (event driven), e possui também um ambiente de desenvolvimento integrado (IDE — Integrated Development Environment) totalmente gráfico, facilitando enormemente a construção da interface das aplicações (GUI — Graphical User Interface).
O nome Visual Basic, é Derivado de:
Basic — a linguagem de Programação
Visual — o Nome do Pacote EX: Visual studio (Visual C++, Visual C#, Visual Basic .NET)
Visual Basic era muito usada em ambientes corporativos: uma pesquisa de 2005 indicou que 62% dos programadores usavam uma forma de Visual Basic, seguido de C++, JavaScript, C# e Java. Atualmente foi suplantada pelo Java.
Em suas primeiras versões, o Visual Basic não permitia acesso a bancos de dados, sendo portanto voltado apenas para iniciantes, mas devido ao sucesso entre as empresas — que faziam uso de componentes adicionais fabricados por terceiros para acesso a dados — a linguagem logo adotou tecnologias como DAO, RDO, e ADO, também da Microsoft, permitindo fácil acesso a bases de dados. Mais tarde foi adicionada também a possibilidade de criação de controles ActiveX, e, com a chegada do Visual Studio .NET, o Visual Basic — que era pseudo-orientada a objetos — tornou-se uma linguagem totalmente orientada a objetos (OO).

Exemplo de Alô Mundo: 

 

Private Sub Form_Load()
MsgBox "Olá mundo!"
End Sub

Linguagem C++ 

 

C++ (em português lê-se "cê mais mais", em inglês lê-se see plus plus) é uma linguagem de programação multi-paradigma e de uso geral. A linguagem é considerada de médio nível, pois combina características de linguagens de alto e baixo nível. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de utilizadores.
Bjarne Stroustrup desenvolveu o C++ (originalmente com o nome C with Classes, que significa C com classes em português) em 1983 no Bell Labs como um adicional à linguagem C. Novas características foram adicionadas com o tempo, como funções virtuais, sobrecarga de operadores, herança múltipla, gabaritos e tratamento de exceções. Após a padronização ISO realizada em 1998 e a posterior revisão realizada em 2003, uma nova versão da especificação da linguagem foi lançada em setembro de 2011, conhecida informalmente como C++11ou C++0x.

Exemplo de Alô Mundo: 

 

#include <iostream>
int main()
{
std::cout << "Alo, Mundo!" << std::endl;
return 0;
}

Java 

 

Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um bytecode que é executado por uma máquina virtual. A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não sua única linguagem.

Exemplo de Alô Mundo: 

 

public class OlaMundo {
public static void main(String[] args) {
System.out.println("Alo, Mundo!"); //Imprime na tela a frase
}

VB.NET 

 

Visual Basic.NET é uma linguagem de programação totalmente orientada a objetos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio .NET.
O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte. Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objetos trouxe poder para a linguagem. A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferente de linguagens como o Visual C++, C#, etc. Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora os programadores Java que migram para a plataforma .NET da Microsoft prefiram o C#.
Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objeto. Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram algumas dificuldades na utilização do Visual Basic.NET.
Os desenvolvedores podem criar uma ampla gama de aplicativos Web, móveis, do Windows e do Office, com a mesma base .Net Framework, que tem atualmente a versão 4.0.

Exemplo de Alô Mundo: 

 

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("Alo, Mundo")
End Sub 

C# 

 

O C# (pronuncia-se "C sharp") é uma linguagem de programação criada para o desenvolvimento de uma variedade de aplicações que executam sobre o .NET Framework. C# é uma linguagem simples, poderosa, com tipagem segura e orientada a objetos. As várias inovações no C# permitem o desenvolvimento rápido de aplicações, mantendo a expressividade e a elegância do estilo de linguagens C.
Visual C# é uma implementação da linguagem C# pela Microsoft. Visual Studio suporta Visual C# com um editor de códigos completo, compilador, modelos de projeto, designers, assistentes de código, um depurador avançado e fácil de usar, e outras ferramentas. A biblioteca de classes do .NET Framework fornece acesso a vários serviços do sistema operacional e outras classes úteis e bem estruturadas que aceleram significativamente o ciclo de desenvolvimento.

Exemplo de Alô Mundo:

 

using System;
namespace Teste
{
class OlaMundo
{
static void Main()
{
Console.WriteLine("Olá, Mundo!");
}
}
}

Frameworks 

 

Definição de Frameworks

Segundo o Wikipédia a definição de Frameworks é: 
"Um framework , em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle."

Java Virtual Machine

O que é a JVM? 

 

Java Virtual Machine, ou máquina virtual Java é a responsável por converter o bytecode em algo que a plataforma escolhida entenda e execute. A máquina virtual utilizada em Java é a JVM (Java Virtual Machine). A ideia principal é o programador deixar de escrever um código para um determinado sistema ou dispositivo e passa a escrever um código para uma plataforma (neste caso Java).

O que é ByteCode? 

 

O ByteCode é o código intermediário gerado pela JVM que é executado/ interpretado pelo programa.
É essa característica que faz com que os os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um byte — daí o seu nome — e assim o número de diferentes códigos de operação está limitado a 256. Os 256 possíveis valores para códigos de operação não são todos utilizados. Na verdade, alguns dos códigos foram inclusive reservados para nunca serem implementados.
Um programador Java não precisa entender — e nem tomar conhecimento — dos bytecodes Java para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem. 

O que é .Net Frameworks? 

 

O .Net Frameworks foi desenvolvido pela Microsoft com o objetivo de unir em uma única plataforma código padrão .Net. Assim como acontece com a JVM, o programador deixar de pensar em sistema e passa a se preocupar apenas com a plataforma (neste caso .Net). A plataforma .NET, é executada sobre uma CLR (Common Language Runtime) interagindo com uma Coleção de Bibliotecas Unificadas, que juntas são o próprio framework.
Esta CLR é capaz de executar, atualmente, mais de vinte diferentes linguagens de programação, interagindo entre si como se fossem uma única linguagem. Estas são: APL ; Boo ; Fortran ; Pascal ; C++ ; Haskell ; Perl ; C# ; Java ; Python ; COBOL ; Microsoft JScript®; RPG; Component Pascal ; Mercury; Scheme; Curriculum ; Mondrian; SmallTalk; Eiffel ; Oberon ; Standard ML ; Forth ; Oz ; Microsoft Visual Basic® ; Delphi ; J#; Ruby; Lua .
Arquitetura .NET, A plataforma .NET se baseia em um dos principios utilizados na tecnologia Java (compiladores JIT), os programas desenvolvidos para ela são duplo-compilados, ou seja são compilados duas vezes, uma na distribuição e outra na execução.
Um programa é escrito em qualquer das mais de vinte linguagens de programação disponível para a plataforma, o código fonte gerado pelo programador é então compilado pela linguagem
escolhida gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language). Este novo código fonte gera um arquivo chamado de Assembly, de acordo com o tipo de projeto: · EXE - Arquivos Executáveis, Programas · DLL - Biblioteca de Funções · ASPX - Página Web · ASMX - Web Service No momento da execução do programa ele é novamente compilado, desta vez pelo JIT(Just In Time Compiler), de acordo com a utilização do programa.
Exemplo: Temos um Web Site desenvolvido em ASP.NET, ao entrar pela primeira vez em uma página o JIT irá compila-la, nas outras vezes que algum outro usuário acessar esta página, ele usará esta compilação.
Também é possível, através de ferramentas específicas, "pré-compilar" o código para que não se tenha o custo da compilação JIT durante a execução.

O que é MSIL?

MSIL ou IL é a linguagem intermediária. Independentemente da linguagem que você escrever seu programa quando compilado será gerado a IL. Mas repare que não é qualquer linguagem que pode ser compilada em .NET. Ela deve aderir as especificações da CLS e aí só então a linguagem pode ser "nomeada" como XYZ.NET, assim como Python.NET, Cobol.NET etc.

O que é CLR?

É o ambiente de execução das aplicações .NET. O CLR cuidará do gerenciamento de memória através do Garbage Collector. Este gerenciamento de memória torna o programa menos propício a erros.
Outro item muito interessantes da .NET é a conversão da sua linguagem, por exemplo COBOL, para IL (Linguagem Intermediária) e é neste estágio entra o compilador JIT (Just-in-Timer) um componente da CLR que interpreta a IL(Linguagem Intemediária) e gera a linguagem de máquina na arquitetura do processador.

O que é CLS?

Define um conjunto de regras que as linguagens que implementam a .NET devem seguir para que a CLR possa gerar a IL.
Esse é um dos motivos de podermos criar sistemas em diferentes linguagens e interagir entre elas dentro da .NET. No momento da compilação é gerado um código único intermediário (IL) e todas essas linguagens suportadas pela .NET seguem as regras da CLS, para que depois de gerado a IL, ela seja interpretada corretamente pela CLR, como já dito acima. 


Esta foi uma visão geral de quase tudo o que você precisa saber  e entender sobre computação básica, que de uma certa forma esta ligada ao desenvolvimento. O resto da sua missão é estudar e se aprofundar no assunto, caso julgue necessário.
Espero ter ajudado e até a próxima postagem.

Nenhum comentário:

Postar um comentário