Topp 10 virkelig bizarre programmeringsspråk

Topp 10 virkelig bizarre programmeringsspråk (Teknologi)

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.

10

INTERCAL

INTERCAL ble opprettet i 1972, og sannsynligvis gjør den til det første esoteriske programmeringsspråket. Donald R. Woods og James M. Lyon (bildet ovenfor) oppfunnet det, med det formål å skape et språk uten likheter til noen eksisterende programmeringsspråk.

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! "

INTERCAL har mange andre funksjoner som er designet for å gjøre det enda mer estetisk ubehagelig for programmereren. Det bruker setninger som "IGNORE" og "FORGET", samt modifikatorer som "VENNLIGST". Dette siste søkeordet gir to grunner til at programmet er avvist av kompilatoren: Hvis "VENNLIGST" ikke vises ofte nok, anses programmet som utilstrekkelig høflig, og feilmeldingen sier det; Hvis for ofte kan programmet bli avvist som overdrevet høflig.

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.


8

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.

6

Shakespeare

Shakespeare Programming Language (SPL) ble designet av Jon Åslund og Karl Hasselström. Som kokk (element # 8), er den designet for å gjøre programmer ser ut til å være noe annet enn programmer; i dette tilfellet spiller Shakespeare.

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

Omgrofl er et språk opprettet i 2006 av Juraj Borza. I sterk kontrast til forrige oppføring ligner søkeordene Internett-slang. Navnet kommer fra å kombinere slangen "ord" Herregud og rofl. ROFL er faktisk en av Omgrofls kommandoer. Omgrofl er ikke saksfølsom, dermed lol er det samme som LoL. Du kan bruke dette til å produsere "hyggeligere" kode.

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

Mulige forhold er:

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.

bruk:

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

4

Piet

Piet er et språk hvis programmer er bitmap-grafikk som ser ut som abstrakt kunst. Det ble designet av David Morgan-Mar, som også skapte Chef. Den er oppkalt etter geometrisk abstrakt kunstpioner, Piet Mondrian; Det opprinnelige navnet Mondrian var allerede tatt.

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

Befunge

Befunge 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

2

Malbolge

Mens Befunge er designet for å være vanskelig å kompilere (oversette til maskinkode), Malbolge, opprettet av Ben Olmstead i 1998, og oppkalt etter den åttende sirkel av Hell i Dantes Helvete, er ment å være så vanskelig som mulig å faktisk skrive programmer inn. Det var så vanskelig å forstå da det kom at det tok to år for det første Malbolge-programmet å vises, og selv dette var ikke skrevet av et menneske, men av en Lisp program ved hjelp av en stråle søk av rommet av alle mulige programmer.

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

brainfuck

Brainfuck 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 hjernekjokk

Denne listen ble kompilert ved hjelp av Esolang Wiki og Wikipedia.