Redcode

Le Redcode est le nom du langage de programmation utilisé dans la guerre de noyau de de jeu. Il est exécuté par une machine virtuelle connue sous le nom de simulateur de Redcode de rangée de mémoire de , ou le MARS . La conception de Redcode est lâchement basée sur les langages d'assemblage réels de de CISC de l'ère tôt des années 80 , mais contient plusieurs dispositifs pas habituellement trouvés dans les systèmes informatiques réels.

Dispositifs de langue principaux

; Aucunes valeurs numériques d'instruction : La norme de Redcode part de la représentation fondamentale des codes d'instruction éliminés, et ne fournit aucun moyen pour que les programmes lui accèdent directement. Des opérations arithmétiques peuvent seulement être faites sur les champs de deux adresses contenus dans chaque instruction. Les seules opérations soutenues sur les codes d'instruction eux-mêmes copient et des comparaisons pour l'égalité. ; Aucun adressage absolu : Toutes les adresses sont interprétées en tant qu'excentrages relativement à l'instruction les contenant. Puisque les enveloppes d'espace d'adressage autour, il est en fait impossible pour qu'un programme de Redcode détermine son adresse absolue. ; Multitraitement de bas niveau : Au lieu d'un indicateur d'instruction simple un simulateur de Redcode a un certain nombre de files d'attente , chacun de processus de qui contient un nombre variable d'indicateurs d'instruction par lesquels le simulateur fait un cycle. De nouveaux processus peuvent être ajoutés à la file d'attente using l'instruction de SPL.

D'autres dispositifs notables de Redcode incluent :

; Aucun accès externe : Redcode et l'architecture de MARS ne fournissent aucune fonction d'entrée ou de rendement. Le simulateur est un système fermé, avec la seule entrée étant les valeurs initiales de la mémoire et des files d'attente de processus, et le seul rendement étant les résultats de la bataille, c. que les programmes ont eu des processus de survie. Naturellement, le simulateur peut encore permettre l'inspection et la modification externes de la mémoire tandis que la simulation fonctionne. ; Longueur et temps d'instruction constants : Chaque instruction de Redcode occupe exactement une fente de mémoire et prend exactement un cycle pour s'exécuter. Le taux auquel un processus exécute des instructions, cependant, dépend du nombre d'autres processus dans la file d'attente, car la durée de la transformation est partagée également. ; Relativement peu d'instructions : La version éditée la plus tôt Redcode a eu seulement huit instructions, alors que la version actuellement utilisée a dix-huit. Cependant, il convient noter que Redcode soutient un certain nombre de différents modes d'adressage et (dans des versions postérieures) modificateurs d'instruction qui augmentent le nombre réel d'opcodes possibles à plusieurs milliers. ; Toutes les adresses sont valides : Tous les nombres dans Redcode sont traités en tant qu'entiers sans signe, et la valeur maximum du nombre entier est placée pour égaler le nombre d'endroits de mémoire sans un. Ainsi chaque nombre entier est une adresse valide, et chaque endroit de mémoire a exactement une adresse valide. Des nombres qui tomberaient en dehors de la gamme valide sont enveloppés autour selon les règles habituelles du modulo arithmétique de . ; Mémoire circulaire : Par suite de ce qui précède et du manque d'adressage absolu, l'espace mémoire (ou noyau de ) apparaît aux programmes dans lui comme cercle sans le début ou l'extrémité défini. Un processus qui ne rencontre aucun inadmissible ou des instructions de saut peut continuer exécuter des instructions successives sans fin, retournant par la suite à l'instruction où il a commencé.

Un certain nombre de variantes de Redcode existent. Les versions les plus tôt décrites par le A. Dewdney diffèrent à bien des égards des normes postérieures établies par la société internationale de guerre de noyau de , et pourraient être considérées un différent, être quoique rapportées, langue. La forme d'aujourd'hui le plus utilisé généralement de Redcode est basée sur un projet de norme soumis à l'ICWS en 1994 qui jamais a été formellement accepté, car l'ICWS était devenu effectivement ancien autour de ce temps. Le développement de Redcode, cependant, a continué d'une façon sans cérémonie, principalement par l'intermédiaire des forum en ligne tels que le newsgroup du rec.

Les versions les plus tôt

La description éditée la plus tôt de Redcode est trouvée dans '' les directives de guerre de noyau '' éditées en mars 1984 par le A. La langue comme décrit ici diffère de manière significative des variantes postérieures, étant de plusieurs manières plus près des langages d'assemblage réels de l'ère.

Les directives décrivent un ensemble de seulement huit instructions, mais on affirme que les réalisations les plus tôt de Redcode par Dewdney et Jones ont eu un plus grand ensemble d'instruction. En effet, la langue décrite dans les directives est meilleur vu plus comme base pour que d'autres réalisateurs augmentent sur que comme norme réelle.

ompu-lang-moignon

.

Random links:MIPS D'OS | Marc Favreau | Élections au Cap Vert | Société humanitaire royale | Camion de pistolet | Redcode