Premiers pas et boucles infinies

Le premier extrait,

10 PRINT "HELLO , WORLD!"
20 GOTO 10
, provient du BASIC et montre la boucle infinie la plus simple : une instruction d’affichage suivie d’un saut inconditionnel. Cette construction illustre le principe de contrôle de flux sans condition, utilisé dans les premiers micro‑ordinateurs pour tester le terminal. Le deuxième exemple,
for ( i = 0 ; i < 1000000 ; i ++ ) {;}
, est un busy‑wait en C. Le compteur est incrémenté un million de fois sans aucune opération interne, ce qui consomme du temps CPU sans produire d’effet observable. Cette technique est parfois détournée pour « gagner du temps » dans des builds ou des tests, mais elle augmente la charge processeur de façon prévisible.

Code bas niveau et auto‑modification

L’extrait en assembleur 6502 démontre la capacité d’un programme à modifier ses propres octets :

LDX #$00
loop LDA $2000,X
STA $0400,X
INX
BNE loop
INC .loop+2
INC .loop+5
LDA .loop+5
CMP #$07
BNE loop
. Le registre X parcourt les adresses $2000‑$20FF, copie chaque octet vers $0400‑$04FF, puis les incrémente via les instructions INC qui ciblent les adresses du code source. Cette auto‑modification exploite le fait que le 6502 est little‑endian, d’où les offsets +2 et +5. Le mécanisme montre les risques de corruption de code et la difficulté de débogage lorsqu’un programme altère son propre flux d’instructions.

Scripts systèmes et automatisation

Le batch Windows

touch.bat type nul > "%*"
crée un fichier vide en redirigeant le flux nul vers le nom fourni. Cette astuce remplace la commande touch native de Unix et fonctionne depuis Windows NT jusqu’à Windows 7. Elle repose sur la redirection de sortie standard, une fonctionnalité du shell CMD. Le script
rm -rf /
est présenté comme une plaisanterie, mais il rappelle que l’exécution de commandes avec privilèges root peut effacer l’ensemble du système de fichiers, soulignant l’importance de la séparation des privilèges.

CSS créatif et limites du front‑end

Le fragment CSS de 280 caractères crée une animation complète sans JavaScript :

* { transform: translateY(24vh); text-align:center }
*:before { animation:a 9s 1e+9 linear; content:'Roses are #F00' }
@keyframes a { 10%,15%,35%,40%,60%,65%,85%,90% { opacity:1 } 12%,37%,62%,87% { opacity:0 } 25% { content:'Violets are #00F' } 50% { content:'All my base' } 75% { content:'Are belong to you' }}
. L’utilisation de @keyframes pour changer la propriété content montre que le CSS peut générer du texte dynamique, mais la durée 1e+9 secondes dépasse les limites pratiques du rendu et dépend du moteur du navigateur. Le style
border:10px solid hotpink;
sert de « débogueur visuel » en affichant un cadre coloré autour d’un élément, une technique courante pour repérer rapidement la boîte de mise en page.