documentc#
DESCRIPTION
Introdução a Máquina Virtual do .Net. (Framework)TRANSCRIPT
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 1 linguagem de Programação 1Teoria da Computação e Linguagens Formais – Belo Horizonte – Minas Gerais – Brasil
Um estudo sobre a linguagemC#
Profa. Pollyanna Miranda de Abreu
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 2 linguagem de Programação 2
História
Anders HejlsbergAnders Hejlsberg
Scott WiltamuthScott Wiltamuth
Desenvolvida pela Microsoft no ano de 2000 por Ander
Heilsberg (Criador do Delphi) e Scott Wiltamuth;
Tem raízes no C, C++ e Java, adaptando os melhores
recursos de cada linguagem;
C# nasceu com o .NET;
Orientada a Objetos e fortemente tipada;
Portabilidade de código;
Gerenciador de memória automático;
Permite internacionalização;
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 3 linguagem de Programação 3
Framework
O .NET Framework é uma plataforma, não uma linguagem, que
visa o desenvolvimento e execução de sistemas e aplicações. Todo
e qualquer código gerado em .Net, pode ser executado em
qualquer dispositivo ou plataforma que possua o mesmo;
Conjunto rico de bibliotecas;
Controle de versão: fim do “DLL Hell”;
Orientada a objeto;
Alta esclabilidade para ambiente de missão crítica.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 4 linguagem de Programação 4
Principais elementos do Framework .Net.
C# VBC++
CLS CTS
FCL
CLR
SISTEMA OPERACIONAL
HARDWARE
Framework
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 5 linguagem de Programação 5
CLR (Common Language Runtime)
CLR (Common Language Runtime) é um ambiente de execução.
Coração do .Net;
CLR executa a compilação Just-In-Time (JIT) para converter o
código IL em instruções nativas da máquina
CLR é carregado quando um software .Net é executado;
ASP.NET VB.NETC#
COMPILA
MSIL
CLR
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 6 linguagem de Programação 6
CLR (Common Language Runtime)
De código fonte para MSIL ( Microsoft Intermediate Langiuage)
De MSIL pra código nativo
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 7 linguagem de Programação 7
Critérios de Avaliação da LP C#
Uma linguagem de programação é considerada de qualidade quando oferece as seguintes características:
1.Legibilidade
2.Capacidade de Escrita
3.Custo
4.Limitações
5.Portabilidade
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 8 linguagem de Programação 8
1- Legibilidade
Devido ao fato de ser hidrido, o resultado é um código limpo e sintático.
using System;class MainApp{
public static void Main(){
Console.WriteLine(“visite www.csharp.com !!”);}
}
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 9 linguagem de Programação 9
1- Legibilidade
Uma característica que tem impacto na simplicidade, e que influencia diretamente a legibilidade é a definição de métodos get e Set. Em C# esses métodos não somente contribui para legibilidade, como também para na capacidade de escrita.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 10 linguagem de Programação 10
1- Legibilidade
O C# também permite criação de tags no fonte programa com a
finalidade de criar documentação, estas vão bem mais além da criação de
páginas HTML;
O Visual Studio nos possibilita a criação automaticamente das tags,
bastando digitar “///” antes do elemento a ser documentado. Essa
documentação fica imediatamente disponível dentro do próprio Visual
Studio como “dica”, sem que seja necessário rodar qualquer ferramenta
terceiros.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 11 linguagem de Programação 11
2 – Capacidade de escrita (Writability)
Influencia na confiabilidade, quanto mais fácil é escrever um programa, há mais probabilidade deste ser um programa correto. Programas de difícil leitura complicam também sua escrita e sua manutenção.
Tópicos importantes:
2.1 Simplicidade e Ortogonalidade
2.2 Suporte para abstração
2.3 Expressividade
2.4 Confiabilidade
2.5 Verificação de Tipos
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 12 linguagem de Programação 12
2 – Capacidade de escrita (Writability)
Plataforma de desenvolvimento
Visual Studio :
• Intellisence ajuda no desenvolvimento;
• Palavras-chave de fácil identificação;
• Identação padrão.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 13 linguagem de Programação 13
2 – Capacidade de escrita (Writability)
Instruções de controle
Com sintaxe similar ao C++, possui as mesmas instruções de
controle:
if, switch, while, do-while, for, foreach, e goto .
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 14 linguagem de Programação 14
Tipos de Dados
2 – Capacidade de escrita (Writability)
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 15 linguagem de Programação 15
2 – Capacidade de escrita (Writability)
Operadores
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 16 linguagem de Programação 16
2 – Capacidade de escrita (Writability)
Operadores
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 17 linguagem de Programação 17
2 – Capacidade de escrita (Writability)
Curto Circuito
Dispónivel para operadores && e ||;
Se operador && for falso no lado esquerdo, operador do lado
direito não sera avaliado;
Se operador || for falso no lado esquerdo, operador do lado
direito não sera avaliado;
( valor < 0 ) && ( valor <= 100 )
( valor < 0 ) ||( valor <= 100 )
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 18 linguagem de Programação 18
2 .1 - Simplicidade e Ortogonalidade
Os aspectos do paradigma orientado a objetos implementado em c#, como
herança, encapsulamento e polimorfismo, permitem que o programador
abstraia detalhes de implementação não relevantes, aumentando a
capacidade de escrita. Por outro lado, construção encontradas na
linguagem, como delegates (referência a métodos que podem ser passados
como parâmentros para outros métodos), aumentam a capacidade de
escrita por sua flexibilidade, porém diminuem, de forma significativa, a
legibilidade.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 19 linguagem de Programação 19
2 .1 - Simplicidade e Ortogonalidade
É uma linguagem com poucas exceções às regras de construção
sintática;
Variáveis do tipo ponteiro podem apontar para todos os tipos,
exceto void;ermitido, mas não é recomendado
Arrays pode ser criados para qualquer tipo,exceto void ou um
estrutura do mesmo tipo;
Para ponteiros de métodos no c# é utilizado o tipo Delegate;
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 20 linguagem de Programação 20
2.2 – Suporte para abstração
Por se tratar de uma linguagem orientada a objetos, esta linguagem
também fornece esse elemento chave.
Permite uso de:
• Herança;
• Encapsulamento;
• Polimorfismo.
Ou seja, com essas caracterisitcas a replicação de código é bem
improvável.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 21 linguagem de Programação 21
2.3 – Expressividade
C# possui diversas instruções que tornam mais expressivas a
escrita dos comandos. São operadores muito poderosos que
permitem uma grande quantidade de computação.
Ex:
Cont = Cont + 1 //Mais comum
Cont++ // Facilitado
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 22 linguagem de Programação 22
Verificação de tipos
Tipagem forte
Todas as classes .NET derivam de uma mesma classe mãe,
Object;
Permite operações de estreitamento e/ou alargamento.
Verificação de atribuições em tempo de compilação.
2.4 – Confiabilidade
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 23 linguagem de Programação 23
Manipulação de exceções
O C# possui um eficiente método de capturar exceções dentro
de um programa, os blocos try, catch e finnaly, onde um programa
escrito dentro do bloco try, ao levantar qualquer exceção, cai no
bloco catch, cabendo ao programador, ou à especificação do
sistema, como o mesmo deverá se comportar diante de tal
adversidade. O bloco finnaly é executado sempre (podendo haver
ou não um exceção), não sendo obrigatório.
2.4 – Confiabilidade
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 24 linguagem de Programação 24
Manipulação de exceções
Try{
// Instrução}catch (NullReferenceException ex) {
// trata de exceções}finally {
// executa sempre
}
2.4 – Confiabilidade
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 25 linguagem de Programação 25
3 – CustoC# é uma linguagem, a princípio, interpretada, pois, apesar de criar um arquivo como extensão executavél, necessita da Máquina Virtual .Net para executar. O ganho com a portabilidade, visto que o programador cria apenas um código que pode ser executado em qualquer plataforma que possua a V.M. .Net instalada, acarretando em perda de performande do sistema executado.
C# apresenta um alto nível de abstração, o que aumenta a capacidade de escrita e consequentemente diminui o custo de desenvolvimento e de execução, pois os problemas são solucionados abstraindo detalhes não pertinentes a este problema.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 26 linguagem de Programação 26
3 – CustoAssim como Java, c# tem uma sintaxe similar ao c++. Este fato reduz, em geral, o custo de treinamento e cientifico, permitindo que programadores com alguma experiência em c, c++ ou java migrem para c#.
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 27 linguagem de Programação 27
Suportada apenas pela plataforma .Net;
4 – Limitações
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 28 linguagem de Programação 28
Projeto Mono
Garantia de portabilidade para aplicações .Net;
Disponível para Linux, BSD, Unix, Mac OS, Solaris e Windows;
Iniciado por Miguel de Icaza. Primeira versão 2004;
Empresa responsável Novell.
5 - Portabilidade
Miguel de IcazaMiguel de Icaza
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 29 linguagem de Programação 29
MonoDevelop:IDE Free de desenvolvimento para .Net.
5 – Portabilidade - Mono
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 30 linguagem de Programação 30
http://http://www.mono-project.com/Main_Page
5 – Portabilidade - Mono
Auto – Calibração e Linearização de Sensores utilizando Técnicas de Inteligência Computacional 31 linguagem de Programação 31
ConclusãoO fato de c# apresentar uma grande quantidade de recursos permite que ela possa ser usada em diversos domínios de aplicações diferentes, uma vez que os programadores tendem, naturalmente, a utilizar apenas um subdomínio da linguagem para resolver todos os tipos de problemas. Assim, ocasionalmente, um programador utilizará estruturas inadeguadas, gerando código com baixa legibilidade e de difícil manutenção