Instrução (informática): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Exemplos de instruções de linguagens imperativas, introdução a como é feita a análise sintática e a análise semântica das instruções.
m Foram revertidas as edições de Jadejcsr para a última revisão de 177.71.92.124, de 20h11min de 4 de abril de 2016 (UTC)
Etiquetas: Reversão Desfazer
Linha 8:
 
As instruções que constituem um programa raramente são especificadas usando sua forma numérica interna; podem ser especificadas por programadores usando [[linguagem de montagem|assembler]] ou, mais comumente, podem ser geradas por [[compilador]]es.
 
Instrução também pode ser um termo usado para as unidades sintáticas de uma linguagem de programação imperativa que expressam alguma ação a ser executada. Um programa é formado por uma sequência de uma ou mais instruções. Estas instruções podem ter componentes internos, como expressões.
 
Muitas linguagens imperativas, como o C, fazem distinção entre instruções e definições, onde instruções contém apenas código executável e as definições instanciam identificadores.
 
== Exemplos de instruções ==
A seguir, alguns exemplos dos tipos mais genéricos de instruções, em algumas linguagens imperativas como Pascal, C e Fortran.
 
=== Instruções Simples ===
 
* '''Declaração'''
** em C: <code>'''assert''(ptr != NULL)''''';</code>
* '''Atribuição'''
** em Pascal: <code>''A ''':=''' A + 5''</code>
** em C e Fortran: <code>''A '''=''' A + 5''</code>
* '''goto'''
** em Fortran: <code>'''goto ''label''''';</code>
* '''return'''
** em C, Pascal e Fortran: <code>'''return ''value''''';</code>
* '''chamada'''
** em C e Pascal: <code>'''CLEARSCREEN()'''</code>
** em Fortran: <code>'''call ''CLEARSCREEN()'''''</code>
 
=== Instruções compostas ===
 
* '''bloco''':
** em Pascal: <code>'''begin ''...'' end'''</code>
** em C: <code>'''{ ''...'' }'''</code>
* '''loop do-while''': <code>do { computation(&i); } while (i < 10);</code>
* '''loop for''': <code>for A := 1 to 10 do WRITELN(A) end</code>
* '''instrução if''': <code>if A > 3 then WRITELN(A) else WRITELN("NOT YET"); end</code>
* '''instrução switch-case''': <code>switch (c) { case 'a': alert(); break; case 'q': quit(); break; }</code>
* '''loop while''': <code>while NOT EOF do begin READLN end</code>
* '''isntrução with''': <code>with open(filename) as f: use(f)</code>
 
== Sintaxe ==
A aparência das instruções modela os programas. [[Linguagem de programação|Linguagens de programação]] são caracterizadas pelo tipo de instruções que usam. Muitas instruções são introduzidas por identificadores como [[IF|if]], [[while]], ou [[Repetidor|repeat]]. Na maioria das vezes, as palavras chave das instruções são reservadas, portanto, não podem ser usadas como nomes de variáveis ou funções. Linguagens imperativas usam sintaxe especial para cada instrução, o que as torna bem diferentes de chamadas de funções. Métodos comuns para descrever a sintaxe de instruções são a forma de [[Formalismo de Backus-Naur|Backus-Naur]] e diagramas de sintaxe.
 
== Semântica ==
Semanticamente, muitas instruções diferem de chamadas de [[Sub-rotina|subrotinas]] pela sua manipulação de [[Parâmetro (ciência da computação)|parâmetros]]. Usualmente, um parâmetro de subrotina é avaliado uma vez antes da subrotina ser chamada. Isso difere de muitos parâmetros de instruções, que podem ser verificados várias vezes (como num [[loop]] while, por exemplo) ou nenhuma vez. Tecnicamente, os parâmetros das instruções são avaliados apenas quando necessários (o que em inglês se chama parâmetros call-by-name).
 
=={{Ver também}}==