Top 10 virkelig bizarre programmeringssprog
Dette er en liste over nogle af de mest bizarre programmeringssprog, du nogensinde vil se. Disse typer af sprog kaldes normalt "esoteriske programmeringssprog". Et esoterisk programmeringssprog (undertiden forkortet til esolang) er et computerprogrammeringssprog, der enten er designet som en test af grænserne for programmeringssprogdesign, til at eksperimentere med underlige ideer eller simpelthen som en joke, snarere end af praktiske årsager. Der er normalt ingen mening om, at sproget bliver vedtaget til programmering i virkeligheden. Sådanne sprog er ofte populære blandt hackere og hobbyfolk.
Brugbarhed er sjældent en høj prioritet for sådanne sprog; ofte ret modsat. Det sædvanlige mål er at fjerne eller erstatte konventionelle sprogfunktioner, mens du stadig opretholder et sprog, der er Turing-komplet, eller endog en, hvor computerklassen er ukendt.
Mange fascinerende og usandsynlige sprog er blevet udviklet, og der er et lille, men aktivt internet samfund af mennesker, der skaber, programmerer og debatterer dem.
Et "Hello World" -program har traditionelt været det første program de fleste mennesker lærer på et sprog, der er nyt for dem. Det er et (normalt) enkelt stykke kode, der udsender ordene "Hej, Verden!" På en udgangsenhed, typisk computerskærmen.
Sørg for at se på alle eksempler på koder - de er i de fleste tilfælde ret hilariske.
10intercal
INTERCAL blev oprettet i 1972, hvilket sandsynligvis gør det til det første esoteriske programmeringssprog. Donald R. Woods og James M. Lyon (billede ovenfor) opfandt det med det formål at skabe et sprog uden nogenlunde lighed med eksisterende programmeringssprog.
Ifølge den oprindelige vejledning af forfatterne, "Kompilatorens fulde navn er" Compilersprog med ingen udrådelig akronym ", som af åbenbare grunde forkortes 'INTERCAL'."
Fælles operationer på andre sprog har kryptisk og overflødig syntaks i INTERCAL. INTERCAL Reference Manual indeholder mange paradoksale, usammenlignende eller andre humoristiske instruktioner som:
"Advarsel! Under ingen omstændigheder forveksle masken med den interleave operatør, undtagen under forvirrende omstændigheder! "
INTERCAL har mange andre funktioner designet til at gøre det endnu mere æstetisk ubehageligt for programmøren: det anvender udsagn som "IGNORE" og "FORGET", samt modifikatorer som "VENLIGST". Dette sidste søgeord giver to grunde til programmets afvisning af kompilatoren: Hvis "PLEASE" ikke vises nok nok, anses programmet for utilstrækkeligt høfligt, og fejlmeddelelsen siger det; hvis alt for ofte kan programmet afvises som overdrevent høflig.
Hej verden i INTERCAL, med tilsvarende kode i C til sammenligning
9 Hvidt rumSom navnet antyder, er Whitespace, designet i 2002 af Edwin Brady og Chris Morris, et esoterisk programmeringssprog, der kun bruger hvide rumtegn som syntax. Således har kun mellemrum, faner og linefeeds betydning. Da den blev udgivet den 1. april 2003, tog de fleste det som en April Fools 'vittighed, som det ikke var.
I modsætning til de fleste programmeringssprog, som ignorerer eller tildeler lidt betydning til de fleste hvide rumtegn, ignorerer Whitespace-tolken ikke-hvide rums tegn. En interessant konsekvens af denne ejendom er, at et Whitespace-program nemt kan indeholde hvide rums tegn i et program skrevet på et andet sprog, hvilket gør teksten til en polyglot.
På billedet ovenfor er "Hello World" i Whitespace.
Kok
Kokken, designet af David Morgan-Mar i 2002, er et esoterisk programmeringssprog, hvor programmer ser ud som madlavningsopskrifter. Variablerne har tendens til at blive opkaldt efter basale fødevarer, stakken kaldes "blandeskåle" eller "bagningsskåle" og instruktionerne til at manipulere dem "blande", "røre" osv. Ingredienserne i en blandeskål eller bageplade er bestilt "Som en stak pandekager".
Ifølge kokkens hjemmeside er design principperne for kokken:
- Programrecept skal ikke kun generere gyldig produktion, men være let at forberede og lækker.
- Opskrifter kan appellere til kokke med forskellige budgetter.
- Opskrifterne vil være metriske, men kan bruge traditionelle madlavningsforanstaltninger som kopper og spiseskefulde.
Hej verden i kokken
7 VelatoVelato er et sprog, der bruger MIDI-filer som kildekode. Programmer i Velato defineres af tonehøjde og rækkefølge af noter. Det skal give mulighed for fleksibilitet i sammensætningen, så funktionelle programmer vil ikke nødvendigvis lyde som tilfældige noter. Der er en tendens til, at Velato-programmer har jazzlignende harmonier.
Alle udsagn i Velato begynder med en "kommando rod" note; intervaller fra denne note oversættes til kommandoer og udtryk. Kommandotoden kan ændres mellem udsagn, for at give mulighed for flere musikalske (eller i det mindste mindre gentagne) fremskridt.
Selvfølgelig kan alle Velato-programmer som alle MIDI-filer også gengives som noter. Afbilledet ovenfor er noter - som du kan lytte til her.
6Shakespeare
Shakespeare Programmeringssprog (SPL) blev designet af Jon Åslund og Karl Hasselström. Ligesom Chef (vare nr. 8) er den designet til at gøre programmerne tilsyneladende noget andet end programmer; i dette tilfælde spiller Shakespeare.
Den første linje i et Shakespeare-program kaldes titlen og fungerer som en kommentar. "Dramatis Personae" er det afsnit, hvor variabler erklæres. Hvert variabelt navn skal være navnet på et tegn fra et Shakespeare-spil.
Et stykke kode i Shakespeare er brudt ind i "Acts", som indeholder "Scenes", hvor tegn (variabler) interagerer. Hver akt og scene er nummereret med et romertal og tjener som et GOTO-mærke. De er skrevet i formularen:
Act I: Hamlet er fornærmelser og smiger.
Scene I: Forbrydelsen af Romeo.
Før "tegn" (variabler) kan "handle" (blive handlet) skal de først være "på scenen". For at kalde en variabel til scenen bruges kommandoen "Enter". For at fortælle tegn at forlade scenen, brug kommandoen "Afslut". "Exeunt" kalder mere end et tegn til at forlade, eller i tilfælde af at ingen tegn er opført, vil alle tegnene forlade scenen.
Hej verden i Shakespeare
Omgrofl er et sprog, der blev oprettet i 2006 af Juraj Borza. I skarp kontrast til den foregående post, ligner dens søgeord internet slang. Navnet kommer fra at kombinere slangen "ord" omg og rofl. rofl er faktisk en af Omgrofls kommandoer. Omgrofl er ikke sagerfølsom, således lol er det samme som LoL. Du kan bruge dette til at producere "pænere" kode.
Variabler i Omgrofl skal være en form for slangordet lolsom lol, lool, loool, looool osv. En variabel kan defineres som:
lol iz 4
wtf tilstand er en betinget erklæring (som hvis i C). Opgørelserne til matchende BRB udføres kun, hvis tilstanden er sand.
Anvendelse:
lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
BRB
Mulige forhold er:
iz uber - kontrollerer, om et udtryk er større end et andet.
iz liek - kontrollerer, om to udtryk er ens.
Disse kan modificeres af:
nope - negation (som ! i C) - skal placeres foran liek eller uber.
brug:
x iz nope uber y
lol iz nope liek 7
Andre søgeord i Omgrofl inkluderer: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (afslutter ansøgningen med det samme).
Hej verden i Omgrofl
4Piet
Piet er et sprog, hvis programmer er bitmap-grafik, der ligner abstrakt kunst. Det blev designet af David Morgan-Mar, som også skabte kok. Det er opkaldt efter geometrisk abstrakt kunstpioner, Piet Mondrian; Det oprindeligt tilsigtede navn, Mondrian, var allerede taget.
Der er 20 farver, for hvilke der er angivet adfærd: 18 "farverige" farver, som bestilles af en 6-trins farvecyklus og en 3-trins lysstyrkecyklus; og sort / hvid, som ikke er bestilt. Når man forlader en "farverig" farve og indtaster en anden, bestemmes den udførte procedure af antallet af skridt for ændring i farvetone og lysstyrke. Sort kan ikke indtastes; Når pegeren forsøger at indtaste en sort region, ændres reglerne for valg af den næste blok i stedet. Hvis alle mulige regler bliver forsøgt, afslutter programmet. Hvid udfører ikke operationer, men giver markøren mulighed for at "passere".
Afbilledet ovenfor er et Piet-program, der udsender "piet".
3 BefungeBefunge adskiller sig fra konventionelle sprog i, at programmer er arrangeret på et todimensionalt gitter, den spilleflade. "Pil" instruktioner -, ^ og v - styr kontrolflowet til venstre, højre, op eller ned, og sløjfer konstrueres ved at sende kontrolflowet i en cyklus.
Befunge blev opfundet i 1993, af Chris Pressey, med det formål at være så vanskeligt at kompilere som muligt. Dette blev forsøgt med implementeringen af selvmodificerende kode (p-instruktionen kan skrive nye instruktioner på spillefeltet) og et multidimensionelt playfield (den samme instruktion kan udføres i fire forskellige retninger). Ikke desto mindre er der siden skrevet en række kompilatorer.
Ligesom brainfuck (se punkt # 1) har Befunge skabt mange efterkommere og fjernkusiner. Befunge-extensions og varianter kaldes Fungeoids eller bare Funges.
De fleste etdimensionale programmeringssprog kræver en vis syntaktisk skelnen mellem kommentartekst og kildekode. I Befunge er der ingen syntax til kommentarer: at indlejre dokumentation i koden, fører programmøren simpelthen kontrolflowet rundt om "kommentar" -området, så teksten i dette område aldrig udføres.
Hej verden i Befunge
2Malbolge
Mens Befunge er designet til at være vanskeligt at kompilere (oversætte til maskinkode), Malbolge, skabt af Ben Olmstead i 1998 og opkaldt efter den ottende cirkel af Helvede i Dantes Helvede, menes at være så vanskeligt som muligt at faktisk skrive programmer i. Det var så svært at forstå, da det ankom, at det tog to år for det første Malbolge-program at vises, og selv dette var ikke skrevet af et menneske, men af en Lisp program ved hjælp af en stråle søgning i rummet af alle mulige programmer.
Der er en diskussion om, om man kan implementere fornuftige sløjfer i Malbolge - det tog mange år, før den første ikke-afsluttende blev introduceret. Et rigtigt "99 flasker øl" -program (med de komplette sangtekster til sangen som dens output), der omhandler ikke-trivielle sløjfer og betingelser, blev ikke annonceret i otte år; den første korrekte var af Hisashi Iizawa, i 2007. Det er afbilledet ovenfor.
Hej verden i Malbolge
1 brainfuckBrainfuck er det mest berømte esoteriske programmeringssprog og har inspireret til oprettelsen af en lang række andre sprog. Noteret for sin ekstreme minimalisme er den designet til at udfordre og underholde programmerere og er ikke egnet til praktisk brug. For at undgå lovovertrædelse er navnet nogle gange givet som b **** fuck. Sprogets navn er generelt ikke kapitaliseret, undtagen i starten af en sætning.
Urban Müller skabte brainfuck i 1993 med det formål at designe et sprog, der kunne implementeres med den mindste mulige compiler. Flere hjernekompilatorer er lavet mindre end 200 bytes.
Sproget består af kun otte kommandoer:> <+ -. , []. Et brainfuck-program er en sekvens af disse kommandoer, muligvis interspersed med andre tegn (som ignoreres).
Som navnet antyder, har brainfuck-programmer tendens til at være svært at forstå. Dette skyldes, at enhver mildt kompleks opgave kræver en lang række kommandoer, hvilket er en af grundene til, at den ikke bruges til seriøs programmering. Ikke desto mindre er brainfuck som et Turing-komplet sprog i teorien i stand til at beregne enhver beregningsfunktion, hvis den får adgang til en ubegrænset mængde hukommelse.
Hej verden i hjernefuck
Denne liste blev udarbejdet ved hjælp af Esolang Wiki og Wikipedia.