Topp 10 virkelig bizarre programmeringsspråk

Dette er en liste over noen av de mest bisarre programmeringsspråkene du noensinne vil se. Disse typer språk kalles vanligvis "Esoteric Programming Languages". Et esoterisk programmeringsspråk (noen ganger forkortet til esolang) er et programmeringssprog som er utformet enten som en test av grensene for programmeringsspråkdesign, for å eksperimentere med rare ideer eller bare som en vits, snarere enn av praktiske årsaker. Det er vanligvis ingen intensjon om at språket blir vedtatt for real-world programmering. Slike språk er ofte populære blant hackere og hobbyister.
Brukbarhet er sjelden en høy prioritet for slike språk; ofte ganske motsatt. Det vanlige målet er å fjerne eller erstatte konvensjonelle språkfunksjoner, mens du fortsatt opprettholder et språk som er Turing-komplett, eller til og med en som beregningsklassen er ukjent for.Mange fascinerende og usannsynlige språk er blitt utviklet, og det er et lite, men aktivt Internett-fellesskap av mennesker som lager, programmerer og debatterer dem.
Et "Hello World" -program har tradisjonelt vært det første programmet de fleste lærer på et språk som er nytt for dem. Det er et (vanligvis) enkelt stykke kode som skriver ut ordene "Hei, Verden!" På en utdataenhet, typisk dataskjermen.
Vær så snill å se på alle eksempelkodene - de er i de fleste tilfeller ganske morsomme. 10INTERCAL
I henhold til den opprinnelige håndboken av forfatterne, "Kompilatørens fullnavn er" Kompilatorspråk med ikke utfordret akronym ", som av åpenbare grunner forkortes" INTERCAL "."
Vanlige operasjoner på andre språk har kryptisk og overflødig syntaks i INTERCAL. INTERCAL-referansehåndboken inneholder mange paradoksale, ikke-sanselige eller andre humoristiske instruksjoner, som:
"Forsiktighet! Under ingen omstendigheter forveksler masken med interleave operatøren, unntatt under forvirrende forhold! "
Hei Verden i INTERCAL, med tilsvarende kode i C for sammenligning
9 mellomrom
Som navnet antyder, er Whitespace, designet i 2002 av Edwin Brady og Chris Morris, et esoterisk programmeringsspråk som bare bruker hvite mellomrom som syntaks. Dermed har bare mellomrom, faner og linjeskift betydning. Da den ble utgitt 1. april 2003, tok de fleste det som en April Fools 'spøk, som det ikke var.
I motsetning til de fleste programmeringsspråk, som ignorerer eller tilordner liten betydning til de fleste hvite plasskarakterer, ignorerer Whitespace-tolk alle ikke-hvite mellomrom. En interessant konsekvens av denne egenskapen er at et Whitespace-program lett kan være inneholdt i hvite mellomrom i et program som er skrevet på et annet språk, og gjør teksten til en polyglot.
Bildet ovenfor er "Hello World" i Whitespace.Chef

Kokk, designet av David Morgan-Mar i 2002, er et esoterisk programmeringsspråk der programmer ser ut som matlagingsrecept. Variablene har en tendens til å bli oppkalt etter grunnleggende matvarer, stablene kalles "blandeboller" eller "bakervarer" og instruksjonene for å manipulere dem "bland", "røre" osv. Ingrediensene i en blandeskål eller bakervarer er bestilt "Som en bunke med pannekaker".
Ifølge kokkens hjemmeside er designprinsippene for kokk:
- Programoppskrifter skal ikke bare generere gyldig utgang, men være lett å forberede og deilig.- Oppskrifter kan appellere til kokker med ulike budsjetter.
- Oppskrifter vil være metriske, men kan bruke tradisjonelle matlagingstiltak som kopper og spiseskjeer.
Hei verden i kokk
7 Velato
Velato er et språk som bruker MIDI-filer som kildekode. Programmer i Velato er definert av tonehøyde og rekkefølge av notater. Det er ment å tillate fleksibilitet i sammensetningen, så funksjonelle programmer vil ikke nødvendigvis høres ut som tilfeldige notater. Det er en tendens til at Velato-programmer har jazzlignende harmonier.
Alle uttalelser i Velato begynner med et "kommandorot" notat; intervaller fra dette notatet er oversatt til kommandoer og uttrykk. Kommandoen rot kan endres mellom setninger, for å tillate flere musikalske (eller i det minste mindre repeterende) progresjoner.
Selvfølgelig, som alle MIDI-filer, kan Velato-programmer også bli representert som noter. Bildet ovenfor er noter - som du kan lytte til her. 6Shakespeare
Den første linjen i et Shakespeare-program kalles "tittelen" og fungerer som en kommentar. "Dramatis Personae" er den delen der variabler er deklarert. Hvert variabelt navn må være navnet på et tegn fra et Shakespeare-spill.
Et stykke kode i Shakespeare er brutt inn i "Acts", som inneholder "Scenes", der tegn (variabler) samhandler. Hver lov og scene er nummerert med et romersk tall og tjener som en GOTO-etikett. De er skrevet i skjemaet:
Gjør jeg: Hamlets fornærmelser og smiger.Scene I: Forfølgelsen av Romeo.
Før "tegn" (variabler) kan "handle" (opptre på) må de først være "på scenen". For å kalle en variabel til scenen brukes kommandoen "Enter". For å fortelle tegn for å forlate scenen, bruk kommandoen "Avslutt". "Exeunt" kaller mer enn ett tegn for å forlate, eller i tilfelle ingen tegn er oppført, vil alle tegnene forlate scenen.
Hei verden i Shakespeare
5 Omgrofl
Variabler i Omgrofl må være en form for slangordet lol, som lol, lool, loool, looool, etc. En variabel kan defineres som:
lol iz 4
wtf tilstand er en betinget uttalelse (som hvis i C). Utsagnene til matchende brb utføres bare dersom tilstanden er sant.bruk:
lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
brb
iz uber - sjekker om ett uttrykk er større enn et annet.
iz liek - kontrollerer om to uttrykk er like.
Disse kan endres av:
nope - negasjon (som ! i C) - må plasseres foran liek eller uber.
x iz nope uber y
lol iz nope liek 7
Andre søkeord i Omgrofl inkluderer: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (avslutter søknaden umiddelbart).
Hei verden i Omgrofl 4Piet
Det er 20 farger for hvilken oppførsel er spesifisert: 18 "fargerike" farger, som er bestilt av en 6-trinns nyanse syklus og en 3-trinns lysstyrke syklus; og svart og hvitt, som ikke er bestilt. Når du avslutter en "fargerik" farge og skriver inn en annen, bestemmes den utførte prosedyren av antall trinn for endring i fargetone og lysstyrke. Svart kan ikke skrives inn; Når pekeren prøver å gå inn i en svart region, endres reglene for å velge neste blokk i stedet. Hvis alle mulige regler blir prøvd, avslutter programmet. Hvit utfører ikke operasjoner, men lar pekeren "passere".
Bildet over er et Piet-program som utgir "piet".
3 BefungeBefunge er forskjellig fra konvensjonelle språk ved at programmene er arrangert på et todimensjonalt rutenett, spillefelt. "Pil" instruksjoner -, ^ og v - styr kontrollflyten til venstre, høyre, opp eller ned, og sløyfer konstrueres ved å sende kontrollflyten i en syklus.
Befunge ble oppfunnet i 1993, av Chris Pressey, med målet om å være så vanskelig å kompilere som mulig. Dette ble forsøkt med implementering av selvmodifiserende kode (p-instruksjonen kan skrive nye instruksjoner i spillfeltet) og et flerdimensjonalt spillfelt (samme instruksjon kan utføres i fire forskjellige retninger). Likevel har en rekke samlere siden blitt skrevet.I likhet med hjernefucking (se artikkel 1) har Befunge skapt mange etterkommere og fjernfettere. Befunge-utvidelser og varianter kalles Fungeoids eller bare Funges.
De fleste endimensjonale programmeringsspråk krever noe syntaktisk skille mellom kommentartekst og kildekode. I Befunge er det ingen syntax for kommentarer: å legge inn dokumentasjon i koden, ringer programmereren rett og slett kontrollflyten rundt "kommentar" -området, slik at teksten i det området aldri blir utført.
Hei verden i Befunge 2Malbolge
Det er noen diskusjon om hvorvidt man kan implementere fornuftige løkker i Malbolge - det tok mange år før den første ikke-avsluttende en ble introdusert. En riktig "99 flasker øl" -program (med de komplette sangene til sangen som dens utgang), som omhandler ikke-trivielle løkker og forhold, ble ikke annonsert i åtte år; Den første korrekte var av Hisashi Iizawa, i 2007. Det er avbildet ovenfor.
Hei verden i Malbolge
1 brainfuckBrainfuck er det mest berømte esoteriske programmeringsspråket, og har inspirert til opprettelsen av en rekke andre språk. Notert for ekstrem minimalisme, er den designet for å utfordre og underholde programmerere, og er ikke egnet for praktisk bruk. For å unngå lovbrudd, er navnet sitt noen ganger gitt som b **** knull. Språket er vanligvis ikke kapitalisert, unntatt ved starten av en setning.
Urban Müller skapte hjernefeil i 1993, med det formål å designe et språk som kunne implementeres med den minste mulige kompilatoren. Flere hjernekompilatorer er laget mindre enn 200 byte.Språket består av bare åtte kommandoer:> <+ -. , []. Et brainfuck-program er en sekvens av disse kommandoene, muligens interspersed med andre tegn (som ignoreres).
Som navnet antyder, har hjernefluktprogrammer en tendens til å være vanskelig å forstå. Dette skyldes at en svakt komplisert oppgave krever en lang rekke kommandoer, noe som er en av grunnene til at den ikke brukes til seriøs programmering. Likevel, som alle Turing-komplette språk, er brainfuck teoretisk i stand til å beregne hvilken som helst beregningsbar funksjon, hvis den får tilgang til en ubegrenset mengde minne.
Hei verden i hjernekjokkDenne listen ble kompilert ved hjelp av Esolang Wiki og Wikipedia.