Você está na página 1de 31

Um estudo sobre a linguagem

C#

Profa. Pollyanna Miranda de Abreu

Auto – Calibração
Teoria e Linearização
da Computação de
linguagem
Sensores
e Linguagens deutilizando
Programação
Formais Técnicas
– Belo de Inteligência
Horizonte – MinasComputacional
Gerais – Brasil 1
História
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;
Anders Hejlsberg
C# nasceu com o .NET;
Orientada a Objetos e fortemente tipada;
Portabilidade de código;
Gerenciador de memória automático;
Scott Wiltamuth Permite internacionalização;

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 2
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 3
Framework
 Principais elementos do Framework .Net.

C# C++ VB

CLS CTS

FCL

CLR

SISTEMA OPERACIONAL

HARDWARE

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 4
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 C# VB.NET

COMPILA
MSIL

CLR

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 5
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 6
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 7
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 8
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 9
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 10
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 11
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 12
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 13
2 – Capacidade de escrita (Writability)
Tipos de Dados

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 14
2 – Capacidade de escrita (Writability)

Operadores

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 15
2 – Capacidade de escrita (Writability)

Operadores

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 16
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;
( valor < 0 ) && ( valor <= 100 )
Se operador || for falso no lado esquerdo, operador do lado
direito não sera avaliado;

( valor < 0 ) ||( valor <= 100 )

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 17
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 18
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 19
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 20
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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 21
2.4 – Confiabilidade
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.

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 22
2.4 – Confiabilidade

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.

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 23
2.4 – Confiabilidade

Manipulação de exceções
Try
{
// Instrução
}
catch (NullReferenceException ex)
{
// trata de exceções
}
finally {
// executa sempre
}

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 24
3 – Custo
C# é 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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 25
3 – Custo
Assim 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


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 26
4 – Limitações

 Suportada apenas pela plataforma .Net;

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 27
5 - Portabilidade

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.

Miguel de Icaza

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 28
5 – Portabilidade - Mono
MonoDevelop:
IDE Free de desenvolvimento para .Net.

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 29
5 – Portabilidade - Mono
 http://www.mono-project.com/Main_Page
http://

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 30
Conclusão
O 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

Auto – Calibração e Linearização de


linguagem
Sensoresdeutilizando
Programação
Técnicas de Inteligência Computacional 31

Você também pode gostar