Dalam sebuah buku penelitian yang ditulis oleh Mark Marron dan baru-baru ini diterbitkan oleh Microsoft, Marron memperkenalkan paradigma baru yang melibatkan “mengangkat model untuk pemrosesan berulang menjauh dari tindakan loop tingkat rendah, memperkaya bahasa dengan operator transformasi data aljabar, dan semakin menyederhanakan masalah dari penalaran tentang perilaku program dengan menghapus ikatan insidental dengan substrat komputasi tertentu dan perilaku tak tentu. "Paradigma baru ini disebut pemrograman yang terregulasi dan seharusnya merevolusi pengembangan perangkat lunak dengan cara yang sama seperti pemrograman terstruktur dan tipe data abstrak pada 70-an.
Marron mengklaim bahwa perbaikan ini akan datang dalam bentuk "kualitas perangkat lunak, produktivitas programmer, dan kompiler / perkakas yang lebih baik." Bahasa Bosque kemudian digunakan sebagai contoh bahasa pemrograman yang dibangun dengan model ragu-ragu dalam pikiran, memberikannya kemampuan untuk "[menghilangkan] sumber kesalahan utama, [menyederhanakan] pemahaman dan modifikasi kode, dan [mengubah] banyak tugas penalaran otomatis alih kode menjadi proposisi sepele."
Apa sih Bosque?
Bosque adalah kombinasi dari TypeScript dalam syntax ML dan JavaScript dalam semantik. Singkatnya, bahasa tersebut akan akrab bagi siapa saja yang pernah membangun aplikasi ujung depan. Bahasa mencakup jenis nominal, tipe struktural, dan tipe kombinasi.function nsum ( d : I n t , . . . a r g s : L i s t [ I n t ] ) : I n t {
return a r g s . sum ( d e f a u l t =d ) ;
}
function np ( p1 : I n t , p2 : I n t ) : {x : I n t , y : I n t } {
return @{x=p1 , y=p2 } ;
}
/ / c a l l s with e x p l i c i t arguments
var x = nsum ( 0 , 1 , 2 , 3) ;
var a = np ( 1 , 2) ;
var b = np ( p2 =2 , 1) ; / / same as a
var c = np ( p2 =2 , p1 =1) ; / / a l s o same as a
/ / c a l l s with spread arguments
var t = @[1 , 2 , 3 ] ;
var y = nsum ( 0 , . . . t ) ; / / same as x
var r = @{p1 =1 , p2 =2};
var d = np ( . . . r ) ; / / same as a
Apa yang membedakan Bosque dari JavaScript dan supersetnya adalah kenyataan bahwa ia menyediakan "operasi data aljabar massal khusus dan dukungan terintegrasi untuk tidak ada pemrosesan (atau data opsional) jadi mempermudahkan para programer untuk operasi data aljabar
Operasi aljabar massal di BOSQUE dimulai dengan dukungan untuk pembacaan massal dan pembaruan nilai data. Selain menghilangkan peluang untuk melupakan atau membingungkan suatu bidang, operator BOSQUE membantu memfokuskan kode pada maksud keseluruhan, alih-alih disembunyikan dalam langkah-langkah individual, dan memungkinkan pengembang untuk melakukan penalaran aljabar pada struktur data
contoh
@[7 , 9]
(@[7 , 8 ] ) <~(0=5 , 3=1) ; / / @[5 , 8 , none , 1]
(@[7 , 8 ] ) <+(@[5]) ; / / @[7 , 8 , 5]
(@{ f =1 , g =2})@{f , h } ; / / @{f =1 , h=none }
(@{ f =1 , g =2}) <~( f =5 , h =1) ; / / @{f =5 , g =2 , h=1}
(@{ f =1 , g =2}) <+(@{ f =5 , h =1}) ; / / @{f =5 , g =2 , h=1}
Baz@identity ( 1 )@{f , h } ; / / @{f =1 , h=t ru e }
Baz@identity ( 1 )@{f , k } ; / / error
Baz@identity ( 1 ) <~( f =5) ; / / Baz@{f =5 , g =1 , h=t ru e }
Baz@identity ( 1 ) <~(p =5) ; / / error
Baz@identity ( 1 ) <+(@{ f =5}) ; / / Baz@{f =5 , g =1 ,
Atomic constructors
Bahasa ini juga menggunakan konstruktor atom untuk mengatur perkembangan. Ini dicapai dengan menggunakan "inisialisasi bidang langsung untuk membangun nilai entitas (objek)."contoh
concept Bar {f i e l d f : I n t ;
f a c t o r y d e f a u l t ( ) : { f : uI n t } {
return @{f =1};
}
}
e n t i t y Baz p r o v i d e s Bar {
f i e l d g : I n t ;
f i e l d h : Bool = t ru e ;
Example
Seperti apa bentuk Bosque? Berikut adalah contoh untuk loop dalam JavaScript, di mana // menunjukkan komentar satu baris.//Functor (Bosque)
var a = List[Int]@{...};
//Pre: true
var b = a.map[Int](fn(x) => x*2);
//Post: List[Int]::eq(fn(x, y) => y == x*2, a, b)
untuk contoh lebih banyak kalian bisa kunjungi https://github.com/Microsoft/BosqueLanguage
dan informasi terbaru tentang Bosque language
oke itu informasi saya dapat mengenai Bosque language
AHHHSIAP BOSQUE!!!!!!!!!!!!!!!!