Hack (programlama dili) - Hack (programming language)

Hile
Solda stilize üçgen geometrik şekiller ile siyah bir arka plan üzerinde beyaz küçük "hack" harfleri içeren Hack logosu
Tarafından tasarlandı Julien Verlaguet, Alok Menghrajani, Drew Paroski ve diğerleri
geliştirici Facebook
İlk ortaya çıktı 2014
Yazma disiplini Statik , dinamik , zayıf , kademeli
işletim sistemi Çapraz platform
Lisans MIT Lisansı
İnternet sitesi hacklang .org
Tarafından etkilenmiş
PHP , OCaml , Java , C# , Scala , Haskell

Hack , Facebook tarafından PHP'nin bir lehçesi olarak oluşturulan HipHop Sanal Makinesi (HHVM) için bir programlama dilidir . Dil uygulaması açık kaynaklıdır ve MIT Lisansı altında lisanslanmıştır .

Hack programcılar hem kullanmanızı sağlar dinamik yazarak ve statik yazarak . Bu tür bir tür sistemi , ActionScript gibi diğer programlama dillerinde de uygulanan kademeli yazma olarak adlandırılır . Hack'in tip sistemi, fonksiyon argümanları , fonksiyon dönüş değerleri ve sınıf özellikleri için tiplerin belirlenmesine izin verir ; ancak, yerel değişkenlerin türleri her zaman belirlenir ve belirlenemez.

Tarih

Hack, 20 Mart 2014'te tanıtıldı. Yeni programlama dili duyurulmadan önce, Facebook kodu zaten uygulamış ve web sitesinin büyük bir bölümünde "savaş testini" yapmıştı.

Özellikleri

Hack, web geliştirmeye odaklanan ve HTML'ye gömülebilen, yaygın olarak kullanılan bir açık kaynaklı betik dili olan PHP ile sorunsuz bir şekilde birlikte çalışacak şekilde tasarlanmıştır . Geçerli PHP betiklerinin çoğu Hack'te de geçerlidir; ancak, daha az kullanılan çok sayıda PHP özelliği ve dil yapısı Hack'te desteklenmez.

Kesmek uzanır ipucu türü , (örneğin, tam sayı ya da string gibi skalar türleri için, örneğin), yeni tip ipuçlarını ekleyerek yanı sıra, örneğin tip tavsiyeleri kullanımını (uzanan statik yazma tanıtım yoluyla PHP 5 mevcuttur sınıf özellikleri veya işlev dönüş değerleri). Ancak, yerel değişken türleri belirtilemez. Hack kademeli bir yazma sistemi kullandığından, varsayılan modda, tür açıklamaları, çıkarsanamayacakları yerlerde bile zorunlu değildir; tip sistemi yazarın doğru olduğunu varsayacak ve kodu kabul edecektir. Ancak, bu tür ek açıklamalar gerektiren ve bu nedenle tamamen sağlam kod uygulayan bir "katı" mod mevcuttur.

Sözdizimi ve anlambilim

Hack betiğinin temel dosya yapısı, birkaç değişiklikle PHP betiğine benzer. Bir Hack dosyası, <?phpaçılış işaretleme etiketini içermez ve üst düzey bildirimlerin kullanılmasını yasaklar. Kod, bir giriş noktası işlevine yerleştirilmelidir. Bunlar, en üst düzey dosyadaysa otomatik olarak yürütülür, ancak dosya include, require, veya otomatik yükleyici aracılığıyla dahil edilmişse yürütülmez . Hack'teki diğer işlevler gibi, bir proje içinde işlev adları benzersiz olmalıdır - yani birden çok giriş noktasına sahip projeler her ikisini birden çağıramaz main :

<<__EntryPoint>>
function main(): void {
  echo 'Hello, World!';
}

PHP'ye benzer yukarıdaki komut dosyası yürütülecek ve tarayıcıya aşağıdaki çıktı gönderilecektir:

Hello, World!

PHP'den farklı olarak Hack ve HTML kodu karışmaz; Ya XHP veya başka şablon motoru ihtiyaçları kullanılacak.

Fonksiyonlar

PHP 7 gibi Hack de fonksiyon argümanları ve fonksiyon dönüş değerleri için tiplerin belirlenmesine izin verir. Hack'teki işlevler bu nedenle aşağıdaki gibi türlerle açıklanır:

// Hack functions are annotated with types.
function negate(bool $x): bool {
    return !$x;
}

Ayrıca bakınız

Referanslar

Dış bağlantılar