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.
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
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