Quantos programadores de usar, eu também construir a minha própria biblioteca de funções prontas para serem reutilizados em vários projetos e contextos múltiplos. Deixe-me passar o título deste post, talvez um pouco arriscada, mas, no entanto, como veremos, não muito longe da realidade.
Em Objective-C código pode chamar e escrever C / C + +, incluindo a montagem para essa matéria. Esta característica o torna uma linguagem muito versátil e, em alguns aspectos, fenomenal. Por um lado, você pode usar e apreciar a sintaxe puramente Objective-C, o outro pode correr rápido portabilidade de código escrito em ANSI C (talvez para o Digital Unix ou Sun) e pode caber confortavelmente em nosso iPhone e aplicações IPAD; para não mencionar todo o kernel BSD já está disponível no Mac OS X!
Leia mais ...
Eu "revivido" deste artigo meu escrevi um pouco "de anos atrás. Eu ligeiramente revisto, atualizando um pouco aqui e ali, mas eu acho que ainda é relevante e interessante.
INTRODUÇÃO
O que é uma linguagem de desenvolvimento? Um computador, PC aka (Personal Computer), tem uma linguagem pessoal. Esta linguagem é chamada de código de máquina, significa que cada máquina, de modo que qualquer computador (PC compatível, Apple, Unix, etc ...), tem um. Patenteada e única Os programas que vemos "correr" em nossos PCs são realizados principalmente pelo objeto misterioso chamado de microprocessador. Este representa o coração, a unidade inteligente, de cada processador electrónico. Na realidade, uma aplicação não é executado pelo microprocessador, mas depende apenas, por assim dizer, no que é chamado sistema operativo: uma camada de software do fabricante da máquina (ver, por exemplo, o Apple Macintosh).
Leia mais ...
Parece óbvio, mas alguns escapam a sutil diferença entre constantes e variáveis em uma linguagem de programação. As constantes, a partir do nome, não altere o seu valor durante o curso de um programa, enquanto as variáveis podem fazê-lo! Muitas vezes, porém, acontecerá a usar variáveis em vez de constantes sem perceber, também, porque isto não irá afetar a lógica de uma aplicação. Apesar disso, a diferença entre constantes e variáveis, e surge todo em tempo de compilação, onde a constante desempenha um ruole definitivamente mais poderoso.
Vindo de C ou de programação Assembly sabe a diferença entre constantes e variáveis, especialmente porque, tanto na Assembleia e C, constantes de desempenhar um papel de MACRO. Para MACRO indendo um "pedaço de código" que é rotulado e substituído no código em tempo de compilação. O compilador, em suma, realiza uma espécie de encontrar .. substituir (e é sostituitsci) no código de cada vez que encontra uma constante.
Imagine que você escrever no fragmento de código C simples seguinte:
1 2 3 4
| 5 ; int a = 5; 3 ; int b = 3; int c; b ; c = a + b; |
sono indicate come variabili in questo caso. Tanto a que b são mostrados como as variáveis do presente caso. Em C, de facto, as constantes são definidos com a palavra-chave #define . sono state definite come int . Fazemos notar que imediatamente a que b tem sido definida como int . Já aqui você pode fazer uma otimização em primeiro lugar. Se sabemos que a nossa variável a nunca exceder um determinado valor, você deve declará-la corretamente e não usar tipos de dados de forma aleatória. Alguns desenvolvedores não se preocupam em declarar os tipos corretos, pensando que isso não afeta a performace! Errado! Alternativamente, é aceitável que a primeira versão do Código não envolve esse nível de detalhe. No entanto, uma boa regra, durante o processo de desenvolvimento, analisar o código e verificar os tipos de dados.
No entanto, em uma montagem da família Motorola, por exemplo, como a 68.000 mítico, nosso código tomariam completado (sem otimizações) numa espécie de:
1 2 3 4
| , d0 ; int a move o # 5, d0; int. , d1 ; int b movimentos. o # 3, d1, int b d2 ; int c - foo movimentos D1, D2, int. C - foo l d0 , d2 ; risultato in d2 ovvero c adicionar. o resultado d0, d2, d2, ou em c |
ou:
1 2 3
| , d0 ; int a move o # 5, d0; int. , d1 ; int b movimentos. o # 3, d1, int b d1 ; risultato in d1... movimentos. o d0, d1, d1 resultado em ... |
O compilador, por mais inteligente esforço, em otimizações, em seguida, escrever o código com a palavra certa só pode ajudar a melhorar a saída compilada. No nosso caso, se o valor 5 é uma constante, não é conveniente usar uma variável inteiro, porque o compilador, correctamente, enquanto a variável variável, precisamente, um predisponde toda a conter o valor simples de 5, que em binário é 101, isto é ocupa três bits simples (se alguma coisa, int é o pior 32bit ou 53bit ponto flutuante de precisão dupla!). Se tivesse escrito o código como este:
1 2 3 4 5
| # Define MIA_COSTANTE 5
3 ; int b = 3; int c; b ; c = MIA_COSTANTE + b; |
O compilador saberia desde o início que MIA_COSTANTE , sendo constante, o valor não vai mudar para que eu possa reservar menos espaço para tratá-la. Na prática, a Assembléia diverebbe código:
1 2 3
| d0 ; la "q" indica una istruzione "quick", cioè che tratta valori compresi tra -128 e +127 moveq # 3, d0, e "q" indica uma instrução "quick", que são os valores entre -128 e +127 ; Uma educação "rápido" leva menos tempo de CPU (4 ciclos de clock, neste caso) d0 ; anche qui uso una istruzione "quick" addq # 5, d0; aqui um manual de instruções "rápido" |
Este código é extremamente rápido e ocupa menos bytes. O que devemos ter em mente é que quando você declarar uma variável de ambiente está pronto para tratá-lo como tal, mesmo que os compiladores de hoje podem fazer milagres, realizando uma série de etapas antes de compilar o código (alguns compiladores, mesmo realizar uma espécie de programa de simulação para otimizar a compilação em código de máquina).
Uma boa regra é, portanto, para declarar o tipo certo para nossas variáveis, ainda que estes sejam. Alternativamente usar as constantes, especialmente se a linguagem de programação estamos a utilizar o esperado (como no caso do novo Flash CS3).
Leia mais ...
Enquanto estamos no assunto de nostalgia, aqui é um bom emulador do historiador do microprocessador 6502 , montado nos anos 80 no console e computadores, como Apple, NS Nintendo e Commodore 64 (que se formou em 6510, ...). Esta jóia bonitinho é inteiramente escrito em JavaScript, rodando em praticamente todos os navegadores (Safari, Opera), com a única desvantagem de ser um pouco lento. Mas vale a pena. No site ( http://www.6502asm.com/ ) encontrei alguns exemplos legais, mas lente curiosa.
Leia mais ...
Últimos Comentários
Gabriel : Olá, interessante artigo. Eu preciso de algo semelhante, mas com algumas mudanças. Em um ...
sebastian : grande parcela - muito obrigado!
Assunto : muito útil mesmo! Eu tentei isso e é exatamente o que eu precisava. Agora eu quero saber como faço para obter ...
vik : Com a ajuda estratégica!
Pimenta : Olá, eu não sei se você é um dos criadores do plugin WP Bannerize. Tenho visto um ...