Rockstar adlı bir programlama dili icat ettiler

Çevirmen | Xue Ming Deng

Rockstar, bir Turing tam dinamik programlama dilidir. Bu dili tasarlamanın amacı şarkı sözü gibi bilgisayar programları geliştirebilmektir. Şarkı sözü tarzı ağırlıklı olarak 1980'lerin heavy rock ve elektrik baladlarından etkilenmiştir.

Rockstar neden var?

Rockstar'ı gerçek (ama anlamsız) bir programlama dili yaparsak, işe alım görevlileri işe alırken "rock geliştiricileri" ni eleştirmezler.

Ayrıca çok ilginç, şarkı sözü derlemesine dayalı bir programlama dili denemeye değer.

Çıkartma olarak da kullanabiliriz, kim dizüstü bilgisayarına "Sertifikalı Rockstar Geliştirici" gibi bir çıkartma yapıştırmak istemez ki?

Rockstar dil belirtimi

Yorum Yap

Rockstar programlarında yorumları kullanmanızı önermiyoruz. Bu Rockstar, bu yüzden kodu okuyanların içinde anlam bulmasına izin verin. Ancak yorumları kullanmakta ısrar ediyorsanız, onları parantez içine alın. Evet, bu aritmetik ifadelerde parantez kullanamayacağınız anlamına gelir.Karmaşık ifadeleriniz varsa, onları birden çok cümleye bölün.

Tommy, zayıf, ortalama bir yıkım makinesiydi. (Tommy'yi 14487 değeriyle başlatır)

Değişken

Rockstar'da değişkenleri bildirmenin ve kullanmanın iki yolu vardır.

Genel değişkenler, bir anahtar kelimeden (a, an, the, my veya your) ve anahtar kelimeden sonra değişken adından oluşur.Değişken adları yalnızca a-z küçük harfli ASCII harfleri içerebilir.

Belirli değişkenler, ayrılmış anahtar kelime olmayan ve büyük harfle başlayan kelimeler olan özel isimlerden oluşur. Her bir boşluğun ardından bir büyük harf geldiği sürece, belirli değişken adları boşluklar içerebilir. KM'de Müşteri Kimliği, Vergi Oranı veya Mesafe gibi değişken adlar oluşturan bazı geliştiriciler olabilir, ancak Tommy, Gina, Doctor Feelgood, Mister Crowley, Kayleigh, Tom Sawyer, Billie Jean gibi alışılmış değişken adları kullanmanızı öneririz. Ve Janie.

Eleanor Rigby, Peggy Sue, Black Betty, Layla ve Johnny B Goode, kesinlikle deyimsel olmasalar da Rockstar'da geçerli değişken isimleridir.

Ruby, Python ve VBScript gibi, Rockstar değişkenleri de dinamik olarak yazılmıştır, bu nedenle onları kullanmadan önce bildirmeye gerek yoktur.

Zamirler

Anahtar kelimeler o, o, o, o, onlar, her zaman en son adlandırılan değişkene atıfta bulunurlar.

Türleri

Rockstar, ECMAScript'e çok benzeyen bir tür sistemi kullanır, ancak tanımsız çok sağlam görünmez, bu yüzden onun yerine gizemli kullanırız.

  • Gizemli - herhangi bir atanmamış değişken, belirtmek için gizemli anahtar kelimesini kullanın.

  • Hesaplamada 0'a eşit veya yanlış değer türü. Anahtar kelimeler hiçbir yerde, hiçbir yerde ve hiç kimsenin takma adı değildir.

  • Boolean - doğru ve yanlış değerlere sahip mantıksal bir varlık. (Anahtar kelimeler belki ve kesinlikle belki korunur ve gelecekte kullanılabilir).

  • doğru, evet ve tamam doğru için geçerli takma adlardır.

  • yanlış, hayır ve yalanlar yanlış için geçerli takma adlardır.

  • Numara Rockstar'daki numaralar DEC64 numara türünde saklanır.

  • Rockstar'daki String-A string, 16 bitlik işaretsiz tamsayı değerleri dizisidir.

  • Nesne - ECMAScript ile aynı olan bir veri öznitelikleri koleksiyonu.

Değişmez ve atama

Rockstar'daki dize değişmezleri çift tırnak içine alınır.

  • "Selam Dünya"

Rockstar'daki tek tırnak işaretleri sıradan harfler olarak değerlendirilir. Bu biraz alışılmadık görünüyor, ta ki aşk hakkında konuşmamanın aslında rock'ta mükemmel ve etkili bir şarkı sözü olduğunu hatırlayana kadar.

Rockstar'daki sayı değişmez bir ondalık sayıdır.

  • 123

  • 3.141592654

Ödev, anahtar kelime kombinasyonunu kullanır:

  • 123'ü X'e koy, 123'ü X değişkenine atamak anlamına gelir.

  • Mesaj değişkenine "Merhaba Dünya" atamak için mesaja "Merhaba Dünya" koyun.

Arttırma ve azaltma

Sırasıyla artırmak ve azaltmak için Build {variable} up ve Knock {variable} down anahtar kelimelerini kullanıyoruz.

  • Dünyamı inşa et, dünyamın değerini 1 artıracak.

  • Duvarları yıkmak, duvarların değerini 1 azaltır

Aritmetik

Temel aritmetik işlemler artı, eksi, zaman, üst ve anahtar sözcükleri kullanır.

Aritmetik ifade:

  • artı {b} ayrıca takma ad ile birlikte bulunur.

  • eksi {b} Çıkarma, takma ad yoktur.

  • kere {b} Çarpma, takma addır.

  • {b} üzerinde Bölme, takma addır.

misal:

  • Kalbinizin tamamını ellerime koyun - - kalbinizi ve bütünü çarpın ve sonucu ellerime verin.

  • Sevginiz olmadan benim dünyam bir hiçtir - aşkınızdan sıfır çıkarır ve sonucu benim dünyama atar.

  • Bir çocuğun gözyaşları bir hiç değilse, bir çocukla çarpılan gözyaşlarının sıfıra eşit olup olmadığını kontrol edin.

  • Senin gözlerinle aşkım - aşkımın değerini senin gözlerinle bölüştürür.

Şiirsel edebi

Rockstar ayrıca şiirsel edebi adı verilen benzersiz bir dil özelliğini de destekler. Burada belgedeki gramerden esinlenen şiirsel literaller, programcıların değişkenleri başlatırken derin kaygılarını ifade etmelerine olanak tanır.

Şiirsel tip değişmez

Doğru, yanlış, hiçbir şey, hiç kimse ve atama için hiçbir şey anahtar kelimelerini kullanırken, değişken adları da dahil olmak üzere tek bir kod satırı kullanın, anahtar kelimeler ve değişmez değerlerdir.

  • Kalbim doğru - Kalbimi başlatmak için boole değerini true kullanın.

  • Tommy hiç kimse değil - Tommy'nin değerini başlatmak için kimse takma adını kullanın.

Şiirsel dize değişmez

Şiirsel bir dize değişmezi atarken, değişken adıyla başlayın, ardından bir anahtar sözcük (örneğin) ve ardından bir boşlukla devam edin. Kalan kısım (sonlandırıcıya kadar \ n) tırnaksız dizge olarak değerlendirilir.

  • Billy, merhaba dünya diyor! \ N, Billy'yi başlatmak için harfli merhaba dünya! Dizesini kullanmak anlamına gelir.

  • Dünya geri merhaba diyor \ n dünyayı başlatmak için değişmez merhaba geri kullanmak anlamına geliyor.

Şiirsel sayı değişmez

Şiirsel bir sayı atarken, değişken adı ile başlayın, ardından is veya takma adı was veya were ile takip edin. Sonraki sembol ayrılmış bir anahtar kelime olmadığı sürece, satırın geri kalanı, sürekli olarak görünen dizenin uzunluğuna karşılık gelen sayılardan oluşan bir ondalık sayı olarak değerlendirilecektir. Sıfır sayısını temsil etmek ve kayadaki tek harfli kelime ve iki harfli kelimelerin eksikliğini telafi etmek için kelime uzunluğunun modulo 10 olması gerekir. Nokta (.), Ondalık basamakları belirtir. İlk nokta hariç, alfabetik olmayan tüm karakterler göz ardı edilecektir.

  • Tommy, Tommy'yi başlatmak için 100'ü kullanan, aşık bir kadın katiliydi.

  • Sweet Lucy, Sweet Lucy'yi başlatmak için 16 kullanan bir dansçıydı.

  • Bir katil, 235 kullanarak bir katili başlatmak için boşta.

  • Hayallerim buzdu. Doldurulmamış bir hayat; herkesi uyandırmak, içki ve hap almak, hayallerimi başlatmak için 3.1415926535 kullanmak demektir.

  • Şiirsel harflerin bu örnekte olduğu gibi ayrılmış anahtar kelimeler içerebileceğini unutmayın.

Karşılaştırma işlemi

Visual Basic ve bazı komut dosyası dillerindeki tek eşittir işareti işlecine benzer şekilde, Rockstar'daki is anahtar kelimesinin bir ifadede mi yoksa bir ifadede mi göründüğünün anlamı farklıdır.

Rockstar'da karşılaştırma işlemleri yalnızca ifadelerde yapılabilir.

  • Tommy, Tommy'yi başlatmak için kimseyi kullanmaz.

  • Tommy kimse değilse, Tommy hiç kimseye eşit olduğunda aşağıdaki kod bloğunu yürütmek anlamına gelir.

Değiştirici, SQL'deki IS / IS NOT'a benzer şekilde karşılaştırma işleminin sonucunu tersine çevirmez. Ain not anahtar kelimesi, is notunun takma adıdır. Bu kullanım, "Tommy kimse değildir", "Tommy kimse değildir" ve "Tommy kimse değildir" ifadesinin aynı anlama geldiği normal İngilizceye aykırıdır.

Rockstar ayrıca aşağıdaki karşılaştırma sözdizimini de destekler:

  • "daha büyük" anlamından daha yüksek / daha büyük / daha büyük / daha güçlüdür.

  • "küçüktür" anlamından daha düşük / daha küçük / daha küçük / daha zayıftır.

  • "büyük veya eşit" anlamına geldiği kadar yüksek / büyük / büyük / güçlüdür.

  • "eşittir veya daha az" anlamına geldiği kadar düşük / küçük / küçük / zayıftır.

giriş çıkış

Rockstar'da, STDIN'den bir girdi satırı okumak için Listen anahtar sözcüğünü kullanıyoruz ve girişi bir değişkene atamak için Dinle'yi kullanıyoruz.

  • Kalbinizi dinleyin STDIN'den bir satır okuyun ve bunu kalbinize atayın.

Değişkenin değerini SDTOUT'a yazmak için Say anahtar sözcüğünü kullanın.

  • Tommy'nin Tommy'nin değerini STDOUT'a verdiğini söyle.

Rockstar, Say için takma ad olarak Shout, Whisper ve Scream kullanıyor.

Akış kontrolü ve blok sözdizimi

Koşullu ifadeler

Koşullu ifade, If anahtar sözcüğüyle başlar ve ardından ifade gelir. İfadenin sonucu doğruysa, sonraki kod bloğu çalıştırılır. If kod bloğundan sonra isteğe bağlı bir Else kod bloğu olabilir. If ifadesi yanlış olarak değerlendirilirse, Else anahtar sözcüğünü izleyen kod bloğu çalıştırılır.

döngü

If deyimine benzer şekilde, döngü, ifade yerine getirildiği sürece aşağıdaki kod bloğunun tekrar tekrar yürütüleceğini belirtmek için While veya Until anahtar sözcüklerini kullanır:

Tommy bir dansçıydı, Tommy hiçbir şey değilken, Knock Tommy

Tommy'yi 16 ile başlat ve sonra döngü yap, Tommy sıfıra eşit olana kadar her seferinde Tommy'den 1 çıkar.

Break ve continue ifadelerinin kullanımı diğer blok tabanlı dillerin çoğunda olduğu gibidir. Rockstar, Break it down'ı mola için bir takma ad olarak ve Take it'i devam etmek için bir takma ad olarak tanımlar.

Kod bloğu

Rockstar'daki kod blokları If, Else, While veya Until ile başlar ve boş satırlar veya EOF ile biter.

Tommy bir dansçıydı, Tommy hiçbir şey değil Bağır onu yık

Fonksiyon

İşlev, değişken adı ve aşağıdaki take anahtar sözcüğü ve and anahtar sözcüğü ile ayrılmış parametre listesi ile bildirilir.

  • Çarpma X ve Y'yi alır

  • Arama İğne ve Saman Yığını alır

İşlev gövdesi, boş satırları olmayan ifadelerin bir listesidir. Boş bir satır, işlev gövdesinin sonunu gösterir. Rockstar'daki işlevlerin her zaman geri ver anahtar sözcüğü ile gösterilen bir dönüş değeri vardır.

İşlevi çağırmak için alma anahtar sözcüğünü kullanın:

  • 3'ü çarpıp 5'i geri almakla eşdeğerdir (muhtemelen) 15

  • Arama "el", "ellerini üzerime koy"

Misal

FizzBuzz'ı ifade etmek için minimal Rockstar kullanın. Anlaşılır olması için girinti kullanılır:

Şiirsel değişmezleri kullanarak, girinti olmadan deyimsel Rockstar:

bazı düşünceler

  • Mümkünse dili geliştirmeye çalışın. Sürekli blok söz dizimine meraklı değilim - yeni başlayanlar için iç içe bloklar henüz mümkün değil.

  • Turing'in eksiksiz rock balad derleyicisini uygulamanın bir yolunu bulun. Belki de BF'ye dayalı bir şeydir, şarkı sözlerini BF'ye veya başka bir minimal ama Turing tam diline derlemek için kelime uzunluğu veya baş harfleri veya başka şeyler kullanıyoruz.

  • "Certified Rockstar Developer" çıkartmaları yapın ve bunları Rockstar kodu yazabilen herkese gönderin.

  • Kod için puan oluşturmak üzere oluşturucuyu kullanın.

İlgili uygulama

  • rockstar-js-Rockstar-to-JavaScript derleyicisi

    https://github.com/wolfgang42/rockstar-js

  • rockstar-lexer-Rockstar sözcük analizörü Haskell'de yazılmıştır

    https://github.com/aitorres/rockstar-lexer

  • rockstar-java-Rockstar'ın Java tercümanı

    https://github.com/nbrevu/rockstar-java

  • rockstar-py-Rockstar-to-Python derleyicisi

    https://github.com/yanorestes/rockstar-py

Orijinal İngilizce

https://github.com/dylanbeattie/rockstar

Bugünün Tavsiyesi

Okumak için aşağıdaki resme tıklayın

Özel CTO Werner Vogels ile konuşun

Teknolojinin sınırları yoktur.Teknik duyarlılığı ve hızlı öğrenme yeteneğini sürdürmek, programcıların ilerlemesi için önemli bir faktördür. "Programcı İlerleme Stratejisi" nin size büyüme aşamasında çok fazla ilham ve rehberlik sağladığına inanılıyor. Aşağıdaki resimdeki QR kodunu tanıyın ve hemen abone olun!

3799 yuan'dan başlayan Honor Magic 2 resmi olarak piyasaya sürüldü
önceki
Rulong 6 Platin Kılavuzu
Sonraki
Vücut şeklini bilmek istiyorsan, bu uzun aynayı al.
Geriye dönüp baktığımızda: Sağlığı yavaşça "azaltan" birkaç pişirme alışkanlığı vardır.
Son 10 yılda izlemeye en değer dört Amerikan TV programı
Apollo 3.0 sürücüsüz teknoloji tam yorumlama: Ar-Ge'den seri üretime neler geçti?
Bu avantaj koleksiyonu, çifte para tasarrufu sağlayan 11 numaranızla sözleşme yapın | günlük kuponlar
Şimdi Amerikan drama çemberi, biri bu Marvel Amerikan draması olan "iki derebeyi" tarafından süpürüldü.
15 yıldır para kaybetmiş bir kitapçı, neden insanlar tarafından bu kadar seviliyor? İyi kitap seçimi
Çinli rapçi bir silah aldı ve gangsta cennetine para atmak için rehinci dükkanına gitti!
Senin için birkaç küçük Cadılar Bayramı çizgi romanı seçtim ve çok tatlı olacaklar
"Neil Mechanical Legion" demo deneyimi: bu bildiğimiz platin!
Ön kamerayı kapat, bu yeni çıkan Nubia X
190328 Lehua Seven NEXT, Hong Kong Disney Açılış Töreni'ne katıldı, Zhu Zhengting şu anda yeni bir dizi çektiğini açıkladı.
To Top