Table des matières
Qu'est-ce que Brainf ** k?
Pourquoi? Pourquoi?
Pourquoi c?
comment ?
La pensée finale
Maison développement back-end C++ Le plus petit traducteur que vous ayez jamais vu

Le plus petit traducteur que vous ayez jamais vu

Apr 04, 2025 am 07:12 AM
ai Pourquoi

Le plus petit traducteur que vous ayez jamais vu

Ce matin, j'ai écrit un traducteur Brainf ** K C. Cela m'a pris environ une heure au total.

L'ensemble du contenu est inférieur à 50 lignes de code C. Vous pouvez le voir ici.

Qu'est-ce que Brainf ** k?

Il s'agit d'une langue d'encodage profonde. Inventé par des étudiants suisses en 1993, il est presque considéré comme l'exigence minimale pour Turiner l'exhaustivité.

C'est également l'une des langues Essolan les plus célèbres qui existent.

La syntaxe est extrêmement simple: il n'y a que 8 caractères et le reste sera ignoré.

 > [ -] <.> [ -] <....>> [ -]  [ -] <. .----------------------->>> [ -] <.><p>Devinez ce qu'il fait. Devinez-le.</p>
<p> C'est un monde de bonjour! programme.</p>
<p> Essentiellement, dans Brainf ** k, vous obtenez un tableau de 30000 octets et un curseur. Vous pouvez utiliser> et <pour d le curseur. vous pouvez modifier la m en utilisant et qui augmentera ou diminuera valeur dans cellule. cr des boucles enfin utiliser lecture seul octet comme entr utilisation.> Imprimez la valeur de la cellule actuelle</pour></p>
<pre class="brush:php;toolbar:false"> >; incréments position de curseur
<p>C'est presque tout sur le cerveau ** k.<br> J'ai déjà écrit des programmes plus fonctionnels en <em>assemblage</em> .</p><h2 id="Pourquoi-Pourquoi"> Pourquoi? Pourquoi?</h2><p> J'ai écrit ce compilateur complètement parce que je m'ennuyais et j'ai trouvé beaucoup d'interprètes, donc je pense que le monde a besoin d'un compilateur Brainf ** k.</p><blockquote><p> Néanmoins, il est indéniable que si vous voulez un très bon compilateur Brainf ** k, consultez celui-ci.</p></blockquote><h3 id="Pourquoi-c"> Pourquoi c?</h3><p> Plusieurs raisons:</p>
Copier après la connexion
  • Je veux plus de pratique
  • Très rapide
  • C'est principalement portable
  • Très courant
  • Quoi qu'il en soit, je n'ai pas besoin de beaucoup de code.

La dernière raison: le débordement entier. Souvent, c'est une mauvaise chose que les gens détestent. Cela peut être la raison pour laquelle les tests unitaires sont inventés (euh). Mais le cerveau ** k est différent. La limite supérieure du nombre dans la bande de mémoire est de 255, et si elle dépasse cela, elle doit être réinitialisée à 0. De plus, si la valeur est inférieure à 0, elle doit être réinitialisée à 255. C le fera seul; Je n'ai pas besoin d'écrire de code pour cela.

comment ?

Un aperçu de niveau supérieur:

  • Lire le code du fichier ou une entrée standard à la mémoire
  • Convertir chaque caractère en code C
  • Code C imprimé.

Il lit le code Brainf ** k du fichier dans le code [].

Ensuite, il met en place un programme C de base:

 #include <stdio.h>
int main () {char t [30000] = {0}; int p = 0;
</stdio.h>
Copier après la connexion

Vous avez peut-être remarqué qu'il manque le support de clôture. En effet, plus de code est ajouté au char [].

Si vous voulez savoir, Char T [30000] est la mémoire qui vous est donnée. J'utilise T comme abréviation de la bande, mais je le raccourcisse car ces programmes ne conviennent pas à la lisibilité humaine.

Ensuite, il traverse le tableau de code, qui est un tableau de caractères uniques. Pour chaque caractère, il le convertit en code C:

personnage Devient
> p
p-
- t [p] -
t [p]
. putchar (t [p])
, t [p] = getchar ()
[ tandis que (t [p]! = 0)
]] }

Vous pouvez consulter ce qui précède pour voir ce que font ces symboles.

Ces valeurs seront ajoutées à la sortie du programme, qui contiendra un code C valide.

Enfin, ajoutez ce code à la sortie finale:

 retour 0;}
Copier après la connexion

Le programme de sortie se termine ici. Le traducteur imprime ensuite ce code en sortie standard afin que l'utilisateur puisse fonctionner comme il le souhaite.

La pensée finale

J'ai quelques idées d'amélioration lors de la rédaction de ce post. Je ne pense pas que je puisse faire trop de choses pour le rendre plus rapide, mais je peux faire quelque chose pour le rendre plus sûr et meilleur.

Vous pouvez afficher le code final ici.

Vous pouvez également faire n'importe quel type de contribution si vous le souhaitez.

Merci d'avoir lu!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les dix premières recommandations de plate-forme gratuites pour les données en temps réel sur les marchés du cercle de devises sont publiées Les dix premières recommandations de plate-forme gratuites pour les données en temps réel sur les marchés du cercle de devises sont publiées Apr 22, 2025 am 08:12 AM

Les plateformes de données de crypto-monnaie adaptées aux débutants incluent CoinmarketCap et la trompette non à petites choses. 1. CoinmarketCap fournit des classements mondiaux de prix, de valeur marchande et de volume de trading pour les besoins novices et d'analyse de base. 2. La citation non à petites choses fournit une interface adaptée aux Chinois, adaptée aux utilisateurs chinois afin de projeter rapidement des projets potentiels à faible risque.

Une liste de services spéciaux pour les principales plateformes de trading de devises virtuelles Une liste de services spéciaux pour les principales plateformes de trading de devises virtuelles Apr 22, 2025 am 08:09 AM

Les investisseurs institutionnels devraient choisir des plateformes conformes telles que Coinbase Pro et Genesis Trading, en se concentrant sur les ratios de stockage du froid et la transparence d'audit; Les investisseurs de détail devraient choisir de grandes plateformes telles que Binance et Huobi, en se concentrant sur l'expérience utilisateur et la sécurité; Les utilisateurs des zones sensibles à la conformité peuvent effectuer un échange de monnaie fiduciaire via Circle Trade et Huobi Global, et les utilisateurs chinois du continent doivent passer par des canaux conformes en vente libre.

Top 10 des dernières versions des plateformes de trading de devises virtuelles pour les transactions en vrac Top 10 des dernières versions des plateformes de trading de devises virtuelles pour les transactions en vrac Apr 22, 2025 am 08:18 AM

Les facteurs suivants doivent être pris en compte lors du choix d'une plate-forme de trading en vrac: 1. Liquidité: la priorité est donnée aux plateformes avec un volume de trading quotidien moyen de plus de 5 milliards de dollars américains. 2. Conformité: Vérifiez si la plate-forme détient des licences telles que FinCEN aux États-Unis, Mica dans l'Union européenne. 3. Sécurité: Ratio de stockage du portefeuille à froid et mécanisme d'assurance sont des indicateurs clés. 4. Capacité de service: s'il faut fournir des gestionnaires de compte exclusifs et des outils de transaction personnalisés.

Une liste des dix principales plateformes de trading de devises virtuelles qui prennent en charge plusieurs devises Une liste des dix principales plateformes de trading de devises virtuelles qui prennent en charge plusieurs devises Apr 22, 2025 am 08:15 AM

La priorité est donnée à des plates-formes conformes telles que OKX et Coinbase, l'activation de la vérification multi-facteurs, et l'auto-cuir de l'auto-assurance peut réduire les dépendances: 1. Sélectionnez un échange avec une licence réglementée; 2. Allumez la liste blanche de 2FA et les retraits; 3. Utilisez un portefeuille matériel ou une plate-forme qui prend en charge l'auto-cuir.

Résumé des dix premiers portails de téléchargement de la version Apple pour les applications d'échange de devises numériques Résumé des dix premiers portails de téléchargement de la version Apple pour les applications d'échange de devises numériques Apr 22, 2025 am 09:27 AM

Fournit une variété d'outils de trading complexes et d'analyse du marché. Il couvre plus de 100 pays, a un volume de trading dérivé quotidien moyen de plus de 30 milliards de dollars, prend en charge plus de 300 paires de trading et 200 fois un effet de levier, a une forte force technique, une énorme base d'utilisateurs mondiaux, fournit des plateformes de trading professionnelles, des solutions de stockage sécurisées et des paires de trading riches.

Quelles sont les dix principales applications de trading de devises virtuelles? Recommandé sur les dix premières plateformes de change de monnaie numérique Quelles sont les dix principales applications de trading de devises virtuelles? Recommandé sur les dix premières plateformes de change de monnaie numérique Apr 22, 2025 pm 01:12 PM

Les dix premiers échanges de devises numériques sécurisés en 2025 sont: 1. Binance, 2. Okx, 3. Gate.io, 4. Coinbase, 5. Kraken, 6. Huobi, 7. Bitfinex, 8. Kucoin, 9. Bybit, 10. Bitstamp. Ces plateformes adoptent des mesures de sécurité à plusieurs niveaux, y compris la séparation des portefeuilles chauds et froids, la technologie multi-signature et un système de surveillance 24/7 pour assurer la sécurité des fonds utilisateur.

Quelles sont les stablecoins? Comment échanger des stablecoins? Quelles sont les stablecoins? Comment échanger des stablecoins? Apr 22, 2025 am 10:12 AM

Les stablecoins communs sont: 1. L'exploitation, émise par Tether, fixée au dollar américain, largement utilisée mais la transparence a été remise en question; 2. Dollar américain, émis par Circle et Coinbase, avec une grande transparence et favorisé par les institutions; 3. Dai, publié par Makerdao, décentralisé et populaire dans le champ Defi; 4. Binance Dollar (BUSD), coopéré par Binance et Paxos, a d'excellentes performances de négociation et de paiement; 5. Trusto

Quels sites Web prennent en charge les mises à jour en temps réel du marché du cercle des devises Quels sites Web prennent en charge les mises à jour en temps réel du marché du cercle des devises Apr 22, 2025 am 08:06 AM

Les données du marché des crypto-monnaies peuvent être obtenues à partir des cinq canaux suivants: 1. Les pages de marché des échanges (telles que Binance, OKX, Gate.io) fournissent des prix en temps réel et des graphiques approfondis; 2. 3. Les données sur la chaîne et les outils de marché Defi (tels que Defillama, analyse des dunes) se concentrent sur les projets Defi et les données sur la chaîne; 4. News et les sites Web complets du marché (tels que Coinjie.com, Currency.com) fournissent un prix de monnaie en temps réel et une analyse du marché; 5. Les médias sociaux et les communautés (comme Twitter, Telegram) peuvent obtenir un sentiment du marché et un nouveau soudain

See all articles