
Pocketlang adalah bahasa yang ringan (~ 3000 titik koma) dan orientasi objek cepat, scripting yang dapat disematkan yang ditulis dalam C. Ini memiliki sintaksis python rasa ruby, yang dapat dipelajari dalam waktu 15 menit. Termasuk kompiler, bytecode VM dan runtime, ini adalah mandiri yang dapat dieksekusi dengan nol dependensi eksternal seperti halnya nama deskriptif diri. Pocketlang VM dapat tertanam dalam program hosting lain dengan sangat mudah.
Bahasa Wren dan penafsir kerajinan buku mereka yang luar biasa digunakan sebagai referensi untuk menulis bahasa ini.
# Python like import statement.
from time import clock as now
# A recursive fibonacci function.
def fib ( n )
if n < 2 then return n end
return fib ( n - 1 ) + fib ( n - 2 )
end
# Prints all fibonacci from 0 to 10 exclusive.
for i in 0 .. 10
print ( "fib($i) = ${fib(i)}" )
end Anda dapat mencoba Pocketlang di browser Anda. Ini adalah build WebAssembly dari VM yang dikompilasi menggunakan Emscripten. Perhatikan bahwa dalam versi bahasa WebAssembly, beberapa fitur (input, penanganan file, impor relatif, dll.) Telah dinonaktifkan, memiliki alokasi memori yang terbatas, dan panggilan stdout mungkin lebih lambat.
Dokumentasi Pocketlang di -host di https://thakeenathees.github.io/pocketlang/ yang dibangun dari cabang docs yang dihasilkan oleh skrip Python kecil di docs/generate.py . Perhatikan bahwa dokumentasinya adalah WIP dan mungkin tidak terkini.
Pocketlang menggunakan Nan-boxing yang merupakan cara efisien memori untuk mewakili tipe dinamis dan menghadapinya jauh lebih cepat. Ini mendukung optimasi panggilan ekor. Ketika suatu fungsi mengembalikan panggilan, callee dapat menggunakan kembali bingkai tumpukan penelepon, ini akan mengoptimalkan memori dari O (n) ke O (1) dan untuk rekursif ekor itu akan sepenuhnya mencegah stackoverflow namun lebih cepat.
Semua tolok ukur di bawah ini dieksekusi pada: Windows10 (64bit), ASUS N552VX, Intel Core I7-6700HQ 2.6GHz dengan 12GB SODIMM RAM. Dan versi bahasa adalah: Pocketlang (pra-alpha), Wren v0.3.0, Python v3.7.4, Ruby v2.7.2.

File sumber yang digunakan untuk menjalankan tolok ukur dapat ditemukan di test/benchmarks/ direktori. Mereka dieksekusi menggunakan skrip Python kecil di direktori tes.
Ini dapat dibangun dari sumber dengan mudah tanpa dependensi, atau persyaratan tambahan kecuali untuk kompiler C99 yang kompatibel. Ini dapat dikompilasi dengan perintah berikut.
gcc -o pocket cli/*.c src/core/*.c src/libs/*.c -Isrc/include -lm -ldl
cl /Fepocket cli/*.c src/core/*.c src/libs/*.c /Isrc/include && rm *.obj
make
Untuk menjalankan file Make di Windows dengan mingw , Anda memerlukan alat GNU make yang bisa Anda dapatkan dari MSYS2 atau Cygwin.
scriptsbuild.bat
Anda tidak perlu menjalankan skrip dari Visual Studio .net Command Command Prompt, itu akan mencari jalur instalasi MSVS dan mengatur lingkungan build.
src/include untuk menyertakan jalur.File proyek Visual Studio dapat dihasilkan dengan premake, lihat skrip/readme untuk informasi lebih lanjut. Jika Anda tidak dapat mengkompilasinya, silakan laporkan kami dengan membuka masalah.
Bob Nystrom. (2021) Craftinginterperters [Online] Tersedia di www.craftinginterperters.com/ (diakses Januari 2021)
Mark W. Bailey, Nathan C. Weston (Juni 2001) Laporan Teknis. Manfaat kinerja penghapusan rekursi ekor dalam bahasa prosedural [online] tersedia di http://cs.hamilton.edu/~mbailey/pubs/techreps/tr-2001-2.pdf
Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes Penutupan di Lua [PDF] Tersedia di https://www.cs.tufts.edu/~nr/cs257/archive/robertoerusalimschy/closures.pdraft.pdraft.pddraft
Leonard Schütz. (2020) Mengetik Dinamis dan Tinju Nan [Online] Tersedia di https://leonardschuetz.ch/blog/nan-boxing/ (diakses Desember 2020)
Bob Nystrom. (2011) Pratt Parsers: Ekspresi Parsing menjadi mudah [online] tersedia di http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/ (diakses Desember 2020)