[TUTORIAL] Como o C# funciona
SchultzGames :: UNITY 3D :: C# .NET
Página 1 de 1
[TUTORIAL] Como o C# funciona
Uma explicação rápida, pra ter uma base de como o CSharp ou algumas outras linguagens de programação funciona.
Os computadores partem da tese de Church-Turing, que resumindo diz "todo fenomêno natural é computável"(Link para o significado completo), ou seja você pode construir algoritmos na computação para praticamente qualquer coisa, você é capaz de repetir a mesma coisa que um computador faz, usando lapis e papel, entretanto a nossa linguagem é diferente da linguagem do computador, não falamos por algoritmos, nos comunicamos com palavras.
Anos atrás no inicio da computação, os processadores eram simples e trabalhavam com pouca memória, você conseguia escrever em código de máquina com uma certa "facilidade", iremos pular essa parte do tempo e partiremos do Assembly que é o mais próximo de linguagem de máquina que ainda utilizamos hoje em dia,
Quando você escreve um código em Assembly, ele converterá em linguagem de máquina, que são vários 0001 1 0 10 10, o famoso código binário.
Dai surgiu a necessidade de criarem linguagens de programação mais abstratas a muitos anos atrás como o Fortran em 1954, a famosa Pascal que surgiu em 1970, depois o C, com adição de classes em C++( a linguagem do código fonte do Linux) e após essas o C# foi desenvolvido pela microsoft. (não foi tão simples assim, mas é uma sequencia lógica pra ficar fácil entender o surgimento do c#)
As linguagens ditas anteriormente convertem seu código para outras linguagens, a exemplo do C, ele converterá para Assembly e o Assembly para código de máquina, tendo isso em mente você praticamente já entendeu como o C# funciona.
Você escreve o código, o compilador transformará em uma linguagem intermediária(o executável), que será executada pelo computador, note que o seu código C# é o nível mais alto até agora, o que nos diz que C# é uma linguagem de programação de alto nível, que literalmente significa abstrata ao ponto de ser compreensível por humanos facilmente. Não chegamos a linguagem de máquina ainda, para isso iremos precisar de um CLR - Common Language Runtime, que fará o trabalho de transformar nossa Linguagem intermediária em linguagem de máquina 00010010110
JIT Compiler -> CLR linguagem de tempo de execução
Native Code -> Linguagem de máquina
Agora você deve ter entendido como o C# funciona, note que é uma explicação básica, não entrei a fundo no funcionamento do compilador e linguagem de máquina, porque ai envolveria diversos outros termos, como o garbage collector, entedimentos de hardware, e outras coisas que possibilitam a abstração do c#.
O .NET engloba o compilador, as classes e tudo necessário para que você possa programar sem entender o baixo nível (low-level) do computador.
Informe qualquer erro, ou dúvidas.
Os computadores partem da tese de Church-Turing, que resumindo diz "todo fenomêno natural é computável"(Link para o significado completo), ou seja você pode construir algoritmos na computação para praticamente qualquer coisa, você é capaz de repetir a mesma coisa que um computador faz, usando lapis e papel, entretanto a nossa linguagem é diferente da linguagem do computador, não falamos por algoritmos, nos comunicamos com palavras.
Anos atrás no inicio da computação, os processadores eram simples e trabalhavam com pouca memória, você conseguia escrever em código de máquina com uma certa "facilidade", iremos pular essa parte do tempo e partiremos do Assembly que é o mais próximo de linguagem de máquina que ainda utilizamos hoje em dia,
Quando você escreve um código em Assembly, ele converterá em linguagem de máquina, que são vários 0001 1 0 10 10, o famoso código binário.
- Exemplo de código Assembly (Aproximação de linguagem de máquina):
Note que aqui temos que declarar as variaveis, indicar o espaço que utilizará na memoria e diversas outras coisas, sendo o código variavel de acordo com o tipo de processador.
Não é necessário compreender, é apenas para se ter uma ideia de aproximação com o código de máquina.- Código:
;; Programa Hello World
section .text
global _start
_start:
mov edx,len ;comprimento da mensagem
mov ecx,msg ;mensagem a ser escrita
mov ebx,1 ;descritor de arquivo (stdout)
mov eax,4 ;número da system call
; (sys_write)
int 0x80 ;call kernel
mov eax,1 ;numero da syscall
; (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!',0xa ;nossa string lindona
len equ $ - msg ;comprimento da lindona
Dai surgiu a necessidade de criarem linguagens de programação mais abstratas a muitos anos atrás como o Fortran em 1954, a famosa Pascal que surgiu em 1970, depois o C, com adição de classes em C++( a linguagem do código fonte do Linux) e após essas o C# foi desenvolvido pela microsoft. (
As linguagens ditas anteriormente convertem seu código para outras linguagens, a exemplo do C, ele converterá para Assembly e o Assembly para código de máquina, tendo isso em mente você praticamente já entendeu como o C# funciona.
Você escreve o código, o compilador transformará em uma linguagem intermediária(o executável), que será executada pelo computador, note que o seu código C# é o nível mais alto até agora, o que nos diz que C# é uma linguagem de programação de alto nível, que literalmente significa abstrata ao ponto de ser compreensível por humanos facilmente. Não chegamos a linguagem de máquina ainda, para isso iremos precisar de um CLR - Common Language Runtime, que fará o trabalho de transformar nossa Linguagem intermediária em linguagem de máquina 00010010110
JIT Compiler -> CLR linguagem de tempo de execução
Native Code -> Linguagem de máquina
Agora você deve ter entendido como o C# funciona, note que é uma explicação básica, não entrei a fundo no funcionamento do compilador e linguagem de máquina, porque ai envolveria diversos outros termos, como o garbage collector, entedimentos de hardware, e outras coisas que possibilitam a abstração do c#.
O .NET engloba o compilador, as classes e tudo necessário para que você possa programar sem entender o baixo nível (low-level) do computador.
Informe qualquer erro, ou dúvidas.
Tópicos semelhantes
» [TUTORIAL] Como spawnar inimigos [Tutorial simples]
» [TUTORIAL]Como Chamar Um Método Usando Uma String como Parametro
» [TUTORIAL] IF,Else,Else if .. como usar
» [TUTORIAL] While, como funciona?
» [TUTORIAL] como Usar OnPartcleCollision
» [TUTORIAL]Como Chamar Um Método Usando Uma String como Parametro
» [TUTORIAL] IF,Else,Else if .. como usar
» [TUTORIAL] While, como funciona?
» [TUTORIAL] como Usar OnPartcleCollision
SchultzGames :: UNITY 3D :: C# .NET
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos