Prévia do material em texto
Abertura // instrudução
1
2801
Fundamentos do C#
Apresentação
Tela de apresentação do curso
2
André Baltieri
7x Microsoft MVP
Desenvolvedor de longa data
Palestrante
CEO do balta.io
Sobre este curso
Expectativas
Revisão sobre linguagens de programação
Aprender os fundamentos do C#
Ter uma experiência real com os itens acima
Requisitos
Antes de começar você precisa...
Ter uma noção sobre programação
Conhecimentos sólidos em Windows, Mac ou Linux
Resultados
Ao término deste curso você vai...
Ter conhecimentos sólidos sobre C#
Conseguir escrever aplicações Console
2801
Fundamentos do C#
Linguagens de Programação
Tela de apresentação do curso
7
O que são?
Definições
É a forma (Comunicação) como dizemos para o computador executar algo
Computadores não falam nossa língua, usam binário
O que são?
Definições
Uma LP faz este intermédio
O que escrevemos será traduzido para binário
Em resumo temos um arquivo texto que
Nós conseguimos ler
Será traduzido para binário
O que são?
Definições
Este processo de “tradução” é conhecido como compilação.
Existem várias linguagens de programação
Cada uma com seu compilador
Cada compilador trabalha de uma forma
Compilador
Agente que executa a compilação, que é a transformação do texto que escrevemos para binário (0 e 1).
2801
Fundamentos do C#
Alto e baixo nível
Tela de apresentação do curso
11
Baixo e Alto nível
Definições
Ao enviar uma instrução ao computador estamos falando em nível de máquina
Estas instruções sempre serão no formato binário
Quanto mais detalhada a necessidade, mais baixo o nível
As linguagens mais modernas como C# e Java são consideradas de alto nível.
Baixo e Alto nível
Exemplo
Código em Assembly, uma linguagem de baixo nível
Baixo e Alto nível
Exemplo
Código em Assembly, uma linguagem de baixo nível
global _start
section .text
_start: mov rax, 1
mov rdi, 1
rsi, message
mov rdx, 13
syscall
mov rax, 60
xor rdi, rdi
syscall
section .data
message: db "Hello, World", 10
Baixo e Alto nível
Exemplo
Código em C#, uma linguagem de alto nível
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
Baixo e Alto nível
Definição
Justamente por este motivo, optamos por linguagens de alto nível, por fornecer um acesso à tudo que precisamos a nível de hardware já pronto.
2801
Fundamentos do C#
Linguagem Compilada ou Interpretada
Tela de apresentação do curso
17
Linguagens Compiladas
Definições
Dada quando existe o processo de compilação da mesma.
Consiste em receber um arquivo texto e convertê-lo para binário.
Normalmente otimizado para leitura de humanos
Vamos comentar sobre as vantagens posteriormente
Linguagens Interpretadas
Definições
Arquivos de texto
Lidos e interpretados por um intérprete
Feito em tempo de execução.
JavaScript é interpretado
Tempo de Execução
É o que acontece durante a execução do código pelo computador ou interpretador.
Linguagens Interpretadas
Definições
No caso do JavaScript
O navegador é escrito em uma linguagem de alto nível
Possui um interpretador
Lê e executa um arquivo de texto JavaScript
2801
Fundamentos do C#
Compilada VS Interpretada
Tela de apresentação do curso
21
Compilada VS Interpretada
Definições
Provavelmente você utilizará ambas
Não se prenda apenas a uma linguagem
Aprenda bem uma, mas conheça outras também
Interpretada
Prós
Não precisa ser compilada
Correções mais fáceis de serem executadas
Mais simples de serem distribuídas
Interpretada
Contras
Detecção de erros
Somente em tempo de execução
Tamanho final da aplicação maior
Menor otimização da execução
Múltiplos arquivos
Compilada
Prós
Tempo de compilação
Detecção mais rápida de erros
Tamanho menor das aplicações
Maior otimização da execução
Apenas um arquivo final
Compilada
Contras
Precisa de um compilador
Pode ser mais burocrática
2801
Fundamentos do C#
Tipagem de dados
Tela de apresentação do curso
27
Tipagem de dados
Definições
Também chamadas de fortemente tipadas.
Obrigam a especificar o tipo de dado da informação
Menor liberdade
Maior otimização
Tipo de Dado
Um tipo de dado define o formato dele, onde definimos por exemplo que aquela informação é um número, uma letra, uma cadeia de caracteres e assim por diante.
Tipagem de dados
Definições
Também chamadas de fortemente tipadas.
Obrigam a especificar o tipo de dado da informação
Menor liberdade
Maior otimização
int idade = 18; // OK
int idade = 18.2; // ERRO
int idade = “18”; // ERRO
int idade = ‘a’; // ERRO
Tipagem de dados
Definições
Este mesmo exemplo em JavaScript, uma linguagem não tipada.
let idade = 18; // OK
let idade = 18.2; // OK
let idade = “18”; // OK
let idade = ‘a’; // OK
Tipagem de dados
Definições
Definir tipos é padronizar os dados
Para nós e para o processador/memória.
O let utiliza sempre o mesmo tamanho de alocação.
Tipando temos uma otimização.
No C# por exemplo...
int => 32-bit
float => 32 bit
double => 64 bit
decimal => 128 bit
2801
Fundamentos do C#
Revisão
Tela de apresentação do curso
32
Revisão
Definições
Linguagens Tipadas e Não Tipadas
Linguagens Compiladas e Interpretadas
Linguagens de Alto e Baixo nível
Compiladores
image8.svg
image9.png
image10.svg
image1.png
image2.svg
image3.png
image4.svg
image5.png
image6.svg
image7.png
image11.png
image12.png
image13.svg
image14.jpeg
image15.png
image16.png
image17.png
image18.svg