**LOLCODE** adalah bahasa pemrograman esoterik yang terinspirasi oleh lolspeak, bahasa yang dipakai dalam meme internet lolcat. Bahasa pemrograman ini dibuat pada 2007 oleh Adam Lindsay, peneliti di Departemen Komputer Universitas Lancaster.

Bahasa pemrograman ini tidak mendefinisikan secara jelas prioritas operator dan sintaks yang benar, tetapi ada beberapa interpreter dan kompiler yang berfungsi. Salah satu interpretasi bahasa ini telah terbukti Turing-lengkap.

Struktur dan contoh bahasa
--------------------------

Kata kunci LOLCODE diambil dari meme internet lolcat yang sangat padat (disingkat). Berikut contoh program Hello world dan program sederhana untuk menampilkan output file ke monitor. Kode serupa juga pernah dimuat dalam *Houston Chronicle*.

### Contoh 1

```
HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

```

| Code | Comment |
| --- | --- |
| `HAI [VERSION]` | Di semua program LOLCODE, `HAI` ("Hi!") memperkenalkan program dan menentukan versi program (meskipun sebenarnya versi program belum di implementasikan saat ini). |
| `CAN HAS [LIBRARY]?` | Dalam banyak bahasa pemrograman, salah satu pernyataan pertama adalah inklusi library untuk fungsi-fungsi umum seperti input dan output. Biasanya ini termasuk dalam panggilan seperti `#include <stdio.h>` [stdio singkatan dari pustaka input / output standar]. Perintah ini menjadi semacam bentuk singkat *tongue-in-cheek* dari pernyataan tersebut, memeriksa apakah perpustakaan dapat diperoleh, memperolehnya jika memungkinkan, dan mengajukan pengecualian jika tidak. Itu ada terutama untuk verisimilitude(perincian yang hanya sebagai keluwesan)- pada kenyataannya, hal ini diabaikan dalam implementasi LOLCODE saat ini. |
| `VISIBLE [MESSAGE]` | mencetak pesan ke layar. |
| `KTHXBYE` | Sebagaimana `HAI` memulai program, `KTHXBYE` (yaitu "K," "THX," dan "Sampai jumpa" semua dirangkai, yang berarti "OK, terima kasih, selamat tinggal") dan mengakhiri program. |

### Contoh 2

```
HAI 1.2
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
    AWSUM THX
        VISIBLE FILE
    O NOES
        INVISIBLE "ERROR!"
KTHXBYE

```

Dalam contoh ini, perintah untuk membuka berkas (`PLZ OPEN FILE "NAME"?`—"Mencoba membuka berkas?"), dan  *error handling* (`AWSUM THX`—"Awesome, thank!", dan `O NOES`—"Oh no! ") diperkenalkan.

Perintah lain termasuk `I HAS A *variabel*` untuk mendeklarasikan variabel, `*variable* R *value*` ("variabel [adalah/akan menjadi] nilai") untuk menetapkannya, pesan kesalahan dikirim ke  *front end* dengan `INVISIBLE` bukannya `VISIBLE`, dan `BTW` ("By the way") untuk menunjukkan komentar, membuat pengurai mengabaikan sisa baris.

Loop dibuat dengan `IM IN YR *label*` (terinspirasi oleh "Im in ur *kata benda*, *verb*ing yr *related noun*" LOLcat meme), dan diakhiri dengan `IM OUTTA YR *label*`. Loop dapat dipatahkan dengan kata kunci `ENUF` ("enough", "cukup" ), atau dalam versi yang lebih lama, `GTFO`. Loop juga dapat diakhiri dengan perintah `IZ` bersyarat.

### Contoh 3

```
HAI 1.0
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   UP VAR!!1
   VISIBLE VAR
   IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE
```

Program sederhana ini menampilkan angka 1–11 dan kemudian keluar (sesuai spesifikasi 1.0). Program yang sama dengan spesifikasi 1.2 (dengan asumsi VAR dimulai pada 0) adalah:

```
HAI 1.2
CAN HAS STDIO?
IM IN YR LOOP UPPIN YR VAR TIL BOTH SAEM VAR AN 10
    VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOP
KTHXBYE
```

Implementasi
------------

Interpreter terbaru dan terkini untuk bahasa LOLCODE adalah lci, ditulis dalam bahasa C oleh Justin Meza. Interpreter LOLCODE ini bisa digunakan secara efisien pada berbagai platform

Implementasi LOLCODE pertama adalah parser PHP yang ditulis oleh Jeff Jones. Situs web parser tersebut juga merupakan situs web pertama yang menggunakan LOLCODE sebagai bahasa skrip web yang sebenarnya. Menjadi sumber terbuka dengan lisensi gaya BSD, telah bercabang dan digunakan oleh banyak situs web untuk mengimplementasikan skrip LOLCODE. Presentasi Pecha Kucha yang menang di PHP Works 2008 juga berkaitan dengan parser ini.

Kompiler .NET untuk LOLCODE disediakan dan ditulis oleh Nick Johnson, dan ditampilkan dalam seminar pelatihan pengembang Microsoft, TechEd 2007 Conference (Australia).

PL / LOLCODE, sebuah proyek yang dipimpin oleh Josh Tolley, membuat LOLCODE tersedia sebagai bahasa pemrograman sisi-server di dalam PostgreSQL.

Microsoft Dynamic Language Runtime memiliki implementasi LOLCODE untuk tujuan pengujian.

lolcode-java (Interpreter Java untuk bahasa pemrograman LOLCODE) juga tersedia tetapi tampaknya belum sesuai dengan spesifikasi versi 1.3.

Penerjemah LOLCODE ke JavaScript juga tersedia.

Ada juga kompiler LOLCODE yang disertakan dengan mesin virtual Parrot sebagai salah satu bahasa yang menunjukkan penggunaan kompiler Parrot.

Compiler, mesin virtual dan debugger, dibuat oleh Piper, untuk bahasa seperti LoLCode, LoLCode 1337, ditulis dalam C, bisa ditemukan dalam web ini

Versi untuk komputasi paralel dan terdistribusi dapat ditemukan di website parallella.org.

Proyek terkait
--------------

LOLCODE juga telah menginspirasi LOLPython, yang ditulis oleh Andrew Dalke. LOLPython menggunakan sintaks yang diilhami LOL mirip dengan LOLCODE, tetapi dengan gaya seperti Python. Interpreter ini beroperasi dengan menerjemahkan sumber LOLPython menjadi kode Python.

ArnoldC adalah cabang dari LOLCODE yang menggantikan lolspeak dengan kutipan dari berbagai film Arnold Schwarzenegger.

Referensi
---------

1. 1 2  Dwight Silverman (2007-06-06). "I'm in ur newspaper writin mah colum". Chron.com. Diakses tanggal 2007-06-06.
2. ↑  "Computing Department at Lancaster University – News". Lancaster University, Computing Department. Diarsipkan dari versi asli tanggal 2009-05-28. Diakses tanggal 2009-06-09.
3. ↑  Hammock, Anne (2008-05-01). "The new fame: Internet celebrity". *CNN*. Diarsipkan dari versi asli tanggal 2009-04-30.
4. ↑  Arachnid. "Proof that LOLCode is turing complete:BrainF\*\*\* interpreter in LOLCode". forum.lolcode.com. Diarsipkan dari versi asli tanggal 2007-07-11. Diakses tanggal 2008-10-05.
5. 1 2 3  Adam Lindsay (2007-05-25). "LOLCODE main page". lolcode.com. Diarsipkan dari versi asli tanggal 2007-10-02. Diakses tanggal 2007-10-02.
6. ↑  "keywords:can-has · LOLCODE". Diarsipkan dari versi asli tanggal 2008-02-06. Diakses tanggal 2008-02-10.
7. ↑  "SORN.net". Diarsipkan dari versi asli tanggal February 16, 2009. Diakses tanggal 2007-11-07.
8. ↑  "LOLCODE + lci".
9. ↑  "First Parser Comment". Lindsay.at. Diarsipkan dari versi asli tanggal 2009-05-19. Diakses tanggal 2009-06-09.
10. ↑  "Tetraboy's LOLCODE parser". Tetraboy.com. Diarsipkan dari versi asli tanggal 2009-02-27. Diakses tanggal 2009-06-09.
11. ↑  ""The Best Web Language: LOLCODE" Slides". Slideshare.net. Diakses tanggal 2009-06-09.
12. ↑  "PHP Works". mtacon.com. Diakses tanggal 4 November 2014.
13. ↑  LOLCODE .NET compiler at Google Code
14. ↑  TechEd Day 2: Microsoft announces LOLCode support, Long Zheng
15. ↑  LOLcode in next Visual Studio? For young and funny cats, NetworkWorld.com
16. ↑  "Video of LOLCODE presentation at TechEd 2007". Blip.tv. 2007-08-17. Diarsipkan dari versi asli tanggal 2009-02-05. Diakses tanggal 2009-06-09.
17. ↑  PL/LOLCODE Diarsipkan 2010-11-28 di Wayback Machine. pgFoundry
18. ↑  Deep DLR,
John Lam and Martin Maly
19. ↑  "lolcode grammar interpreter written in Java".
20. ↑  "LolCode". Fullvolume.co.uk. Diakses tanggal 2009-06-09.
21. ↑  "Lightning-Parrot". lolcode.com. Diarsipkan dari versi asli tanggal 2009-03-22. Diakses tanggal 2009-06-20.
22. ↑  "LoLCode 1337".
23. ↑  "Parallel and Distributed Computing with LOLCODE".
24. ↑  "LOLPython". Dalkescientific.com. 2007-06-01. Diakses tanggal 2009-06-09.
25. ↑

Pranala luar
------------

* Situs web resmi Sunting ini di Wikidata

| * l
* b
* s
Bahasa pemrograman |
| --- |
| 
* Garis waktu
* Perbandingan
* Sejarah

 |
| 
* APL
* Assembly
* BASIC
* C
* C++
* C#
* COBOL
* Fortran
* Go
* Groovy
* Haskell
* Java
* JavaScript (JS)
* Kotlin
* Lisp
* Lua
* Objective-C
* OCaml
* Pascal
* Perl
* PHP
* Python
* Ruby
* Rust
* Shell
* Smalltalk
* Swift
* Visual Basic
* Visual Basic .NET (VB.NET)
* *selengkapnya...*

 |
| 
* Category **Kategori**
* List-Class article **Daftar**
	+ Menurut alfabet
	+ Menurut kategori
	+ Menurut muatan
	+ bahasa non-Inggris

 |