Topp 10 riktigt bisarra programmeringsspråk

Topp 10 riktigt bisarra programmeringsspråk (Teknologi)

Detta är en lista över några av de mest bisarra programmeringsspråk som du någonsin kommer att se. Dessa typer av språk kallas vanligen "esoteriska programmeringsspråk". Ett esoteriskt programmeringsspråk (ibland förkortat till esolang) är ett datorprogrammeringsspråk som utformats antingen som ett test av gränserna för programmeringsspråkdesign, för att experimentera med konstiga idéer eller helt enkelt som ett skämt, snarare än av praktiska skäl. Det är vanligtvis ingen avsikt att språket antas för verklig programmering. Sådana språk är ofta populära bland hackare och hobbyister.

Användbarhet är sällan en hög prioritet för sådana språk; ofta tvärtom. Det vanliga målet är att ta bort eller ersätta konventionella språkfunktioner samtidigt som ett språk som är Turing-komplett, eller till och med en för vilken beräkningsklassen är okänd, fortfarande upprätthålls.

Många fascinerande och osannolika språk har utvecklats, och det finns ett litet men aktivt Internetgemenskap av människor som skapar, programmerar in och debatterar dem.

Ett "Hello World" -program har traditionellt varit det första programmet de flesta lär sig på ett språk som är nytt för dem. Det är en (vanligtvis) enkel kodkod som matar ut orden "Hej, Värld!" På en utmatningsenhet, vanligtvis datorskärmen.

Var noga med att titta på alla exemplarkoder - de är i de flesta fall ganska hilariska.

10

intercal

INTERCAL skapades 1972, vilket förmodligen gör det till det första esoteriska programmeringsspråket. Donald R. Woods och James M. Lyon (bilden ovan) uppfann det, med målet att skapa ett språk med inga likheter med något existerande programmeringsspråk.

Enligt författarnas ursprungliga handbok, "Kompilatörens fullständiga namn är" Kompilatorspråk utan utropsberättigande akronym ", vilket av uppenbara skäl förkortas" INTERCAL "."

Vanliga funktioner på andra språk har kryptiskt och redundant syntax i INTERCAL. INTERCAL-referenshandboken innehåller många paradoxala, oanständiga eller annat humoristiska instruktioner, som:
"Varning! Under inga omständigheter förvirra nätet med den interleave operatören, förutom under förvirrande omständigheter! "

INTERCAL har många andra funktioner som gör det ännu mer estetiskt obehagligt för programmeraren: det använder sig av uttalanden som "IGNORE" och "FORGET", liksom modifierare som "VÄLKOMMEN". Det här sista sökordet ger två skäl till att programmets avvisning av kompilatorn är: om "VÄLKOMMEN" inte visas tillräckligt ofta anses programmet vara otillräckligt artigt och felmeddelandet säger så. om alltför ofta kan programmet avvisas som alltför artigt.

Hej världen i INTERCAL, med motsvarande kod i C för jämförelse

9

blank

Som namnet antyder, är Whitespace, utformad 2002, av Edwin Brady och Chris Morris, ett esoteriskt programmeringsspråk som endast använder vitbokstegn som syntax. Således har endast mellanslag, flikar och linjeledningar betydelse. När den släpptes den 1 april 2003 tog de flesta det som ett April Fools skämt, vilket det inte var.

Till skillnad från de flesta programmeringsspråk, som ignorerar eller tilldelar liten betydelse för de flesta blankstegstecken, ignorerar Whitespace-tolken eventuella icke-mellanslagstecken. En intressant följd av den här egenskapen är att ett Whitespace-program lätt kan föras in i blankstegstecken i ett program skrivet på ett annat språk, vilket gör texten en polyglot.

Avbildad ovan är "Hello World" i Whitespace.


8

Kock

Kocken, designad av David Morgan-Mar 2002, är ett esoteriskt programmeringsspråk där program ser ut som matlagningsrecept. Variablerna brukar namnges efter grundläggande livsmedel, staplarna kallas "blandningsskålar" eller "bakverk" och instruktionerna för att manipulera dem "blanda", "röra" osv. Ingredienserna i en blandningsskål eller bakfat är beställda "Som en stack av pannkakor".

Enligt kockens hemsida är konstruktionsprinciperna för kocken:

- Programrecept ska inte bara generera giltig produktion, men vara lätt att förbereda och läckra.
- Recept kan vädja till kockar med olika budgetar.
- Recepten kommer att vara metrisk, men kan använda traditionella matlagningsåtgärder som koppar och matskedar.

Hej världen i kocken

7

Velato

Velato är ett språk som använder MIDI-filer som källkod. Program i Velato definieras av tonhöjd och ordning på anteckningar. Det är tänkt att tillåta flexibilitet i kompositionen, så funktionella program behöver inte nödvändigtvis låta som slumpmässiga anteckningar. Det finns en tendens för Velato-program att ha jazzliknande harmonier.

Alla uttalanden i Velato börjar med en "kommandorot" -anteckning; intervaller från denna anteckning översätts till kommandon och uttryck. Kommandot rot kan ändras mellan uttalanden, för att möjliggöra mer musikaliska (eller åtminstone mindre repetitive) progressioner.

Naturligtvis, liksom alla MIDI-filer, kan Velato-program också representeras som noter. Bilden ovan är noter - som du kan lyssna på här.

6

Shakespeare

Shakespeare Programming Language (SPL) designades av Jon Åslund och Karl Hasselström. Liksom kock (artikel nr 8) är det utformat för att göra program verkar vara något annat än program; i detta fall spelar Shakespearean.

Den första raden i ett Shakespeare-program kallas titeln och fungerar som en kommentar. "Dramatis Personae" är den sektion där variabler förklaras. Varje variabelnamn måste vara namnet på ett tecken från ett Shakespeare-spel.

En del kod i Shakespeare är uppdelad i "Acts", som innehåller "Scenes", där tecken (variabler) interagerar. Varje lag och scen är numrerad med en romansk tal och fungerar som en GOTO-etikett. De är skrivna i formuläret:

Handla I: Hamlets förolämpningar och smickrande.
Scène I: Den irriterande av Romeo.

Innan "tecken" (variabler) kan "agera" (åtgärdas) måste de först vara "på scenen". För att ringa en variabel till scenen används kommandot "Enter". För att berätta tecken för att lämna scenen, använd kommandot "Exit". "Exeunt" samtalar mer än ett tecken för att lämna, eller om inga tecken listas upp kommer alla tecken att lämna scenen.

Hej världen i Shakespeare


5

Omgrofl

Omgrofl är ett språk som skapades 2006 av Juraj Borza. I skarp kontrast till föregående post liknar sökordet Internet slang. Namnet kommer från att kombinera slangen "ord" Herregud och rofl. ROFL är faktiskt en av Omgrofls kommandon. Omgrofl är således inte skiftlägeskänslig LOL är det samma som LOL. Du kan använda detta för att producera "trevligare" kod.

Variabler i Omgrofl måste vara en form av slangordet LOL, som lol, lool, loool, looool, etc. En variabel kan definieras som:

lol iz 4

wtf tillstånd är ett villkorligt uttalande (som om i C). Uttalanden till matchande brb körs endast om villkoret är sant.

Användande:

lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
brb

Möjliga villkor är:

iz uber - kontrollerar om ett uttryck är större än ett annat.
iz liek - kontrollerar om två uttryck är lika.

Dessa kan modifieras av:
nope - negation (som ! i C) - måste placeras framför liek eller uber.

användande:

x iz nope uber y
lol iz nope liek 7

Andra sökord i Omgrofl inkluderar: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (avslutar ansökan omedelbart).

Hej världen i Omgrofl

4

Piet

Piet är ett språk vars program är bitmapgrafik som ser ut som abstrakt konst. Det var designat av David Morgan-Mar, som också skapade kocken. Det är uppkallat efter en geometrisk abstrakt konstpionjär, Piet Mondrian; Det ursprungligen avsedda namnet Mondrian var redan tagit.

Det finns 20 färger för vilket beteende specificeras: 18 "färgstarka" färger, som beställs av en 6-stegs nyanscykel och en 3-stegs ljusstyrka. och svartvitt, som inte beställs. När du lämnar en "färgstark" färg och matar in en annan, bestäms det utförda förfarandet av antalet steg för ändring i nyanser och ljusstyrka. Svart kan inte anges; När pekaren försöker komma in i en svart region ändras reglerna för att välja nästa block istället. Om alla möjliga regler försökas, avslutas programmet. White utför inte operationer, men låter pekaren "passera".

Bilden ovan är ett Piet-program som matar ut "piet".

3

befunge

Befunge skiljer sig från konventionella språk genom att programmen är ordnade på ett tvådimensionellt rutnät spelplanen. "Pil" -instruktionerna -, ^ och v - rikta kontrollflödet till vänster, höger, upp eller ner och loopar konstrueras genom att skicka kontrollflödet i en cykel.

Befunge uppfanns 1993, av Chris Pressey, med målet att vara så svårt att sammanställa som möjligt. Detta försökte med genomförandet av självmodifierande kod (p-instruktionen kan skriva nya instruktioner i spelfältet) och ett mångdimensionellt spelfält (samma instruktion kan utföras i fyra olika riktningar). Ett antal kompilatorer har dock skrivits efter.

Liksom hjärnfuckning (se punkt 1) har Befunge skottat många efterkommande och avlägsna kusiner. Befunge-förlängningar och varianter kallas Fungeoids eller bara Funges.

De flesta ettdimensionella programmeringsspråk kräver viss synaktisk skillnad mellan kommentartext och källkod. I Befunge finns det ingen syntax för synpunkter: för att bädda in dokumentationen i koden, ringer programmeraren helt enkelt kontrollflödet runt "comment" -området, så att texten i det området aldrig körs.

Hej värld i Befunge

2

malbolge

Medan Befunge är konstruerad för att vara svår att kompilera (översätt till maskinkod), Malbolge, skapad av Ben Olmstead 1998 och uppkallad efter den åttonde cirkeln av helvetet i Dantes Inferno, är tänkt att vara så svårt som möjligt att faktiskt skriva program. Det var så svårt att förstå när det kom att det tog två år för det första Malbolge-programmet att visas, och även detta var inte skrivet av en människa utan av en Lisp-program med hjälp av en strålsökning av rymden för alla möjliga program.

Det finns en del diskussion om huruvida man kan genomföra förnuftiga loopar i Malbolge - det tog många år innan den första icke-avslutande man introducerades. Ett korrekt "99 flaskor öl" -program (med fullständiga texter till låten som dess produktion), som behandlar icke triviala slingor och förhållanden, meddelades inte i åtta år. Den första korrekta var av Hisashi Iizawa, 2007. Det visas ovan.

Hej världen i Malbolge

1

brainfuck

Brainfuck är det mest kända esoteriska programmeringsspråket, och har inspirerat till skapandet av en mängd andra språk. Noterat för sin extrema minimalism, är den utformad för att utmana och roa programmerare och är inte lämplig för praktisk användning. För att undvika brott är namnet ibland givet som b **** knulla. Språket är generellt inte kapitaliserat förutom i början av en mening.

Urban Müller skapade brainfuck 1993, med avsikt att utforma ett språk som skulle kunna implementeras med minsta möjliga kompilator. Flera brainfuck-kompilatorer har gjorts mindre än 200 byte.

Språket består av endast åtta kommandon:> <+ -. , []. Ett brainfuck-program är en sekvens av dessa kommandon, eventuellt interspersed med andra tecken (som ignoreras).

Som namnet antyder tenderar brainfuck-program att vara svåra att förstå. Detta beror på att en lätt komplex uppgift kräver en lång följd av kommandon, vilket är en av anledningarna till att den inte används för allvarlig programmering. Icke desto mindre, som alla Turing-kompletta språk, är brainfuck teoretiskt i stånd att beräkna någon beräkningsbar funktion, om den ges åtkomst till en obegränsad mängd minne.

Hej världen i hjärnfuck

Denna lista sammanställdes med hjälp av Esolang Wiki och Wikipedia.