Mercury

Software screenshot:
Mercury
Rincian Software:
Versi: 13.05.1
Tanggal Upload: 15 Apr 15
Pengembang: Mercury Developers
Lisensi: Gratis
Popularitas: 11

Rating: 2.0/5 (Total Votes: 1)

bahasa pemrograman Logika telah ada selama lebih dari dua puluh tahun. Meskipun keuntungan yang diharapkan dari bahasa pemrograman tingkat yang sangat tinggi berdasarkan teori yang dikembangkan dengan baik logika atas bahasa pemrograman konvensional (seperti C, C ++, Pascal dan Ada) mereka tidak memiliki dampak yang signifikan terhadap industri komputer.
Mercury adalah logika / bahasa pemrograman fungsional baru, yang menggabungkan kejelasan dan ekspresi pemrograman deklaratif dengan analisis dan deteksi kesalahan statis fitur canggih.
Mercury sangat dioptimalkan algoritma eksekusi memberikan efisiensi jauh melebihi sistem pemrograman logika yang ada, dan dekat dengan sistem pemrograman konvensional.
Mercury membahas masalah pengembangan program berskala besar, yang memungkinkan modularitas, kompilasi terpisah, dan berbagai optimasi / waktu trade-off

Apa yang baru dalam rilis ini:.

  • Ini bugfix perbaikan rilis membangun masalah pada Solaris dan NetBSD dan menambahkan dukungan untuk memilih C # compiler saat konfigurasi.
  • Berbagai bug kecil lainnya telah diperbaiki.
  • Ada juga beberapa tambahan kecil ke perpustakaan standar.

Apa yang baru dalam versi 13,05:

  • Generasi 64-bit executable pada Windows sekarang didukung.
  • kali Kompilasi untuk program yang sangat besar telah diperbaiki.
  • Beberapa optimasi representasi tipe baru telah ditambahkan.
  • debugger sekarang memiliki dukungan yang lebih baik untuk menangani geng panggilan saling rekursif di stack.
  • Sebuah mengikat perpustakaan GLFW telah ditambahkan ke distribusi ekstra.
  • Sidang dihasilkan dengan C # backend sekarang dapat ditandatangani dengan nama yang kuat.

Apa yang baru dalam versi 11.01:

  • Kami telah menambahkan dua jenis baru dari lingkup bahasa.
  • Sebuah lingkup diperkenalkan oleh salah satu kata kunci baru require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous dan require_failure, seperti namanya, membutuhkan gol dalam ruang lingkup untuk memiliki determinisme diberikan.
  • Sebuah lingkup diperkenalkan oleh require_complete_switch kata kunci membutuhkan tujuan dalam lingkup, jika sebuah tombol di variabel bernama oleh ruang lingkup, untuk menjadi saklar yang lengkap, yaitu memiliki senjata untuk semua simbol fungsi dalam tipe diaktifkan-pada variabel.
  • Kami telah menambahkan mode semidet untuk hash_table.fold / 4 dan version_hash_table.fold / 4.
  • Kami telah menambahkan predikat dan fungsi baru untuk modul assoc_list. Predikat map_keys_only / 3 map_values_only / 3 dan map_values ​​/ 3 pelengkap fungsi dengan nama yang sama. Predikat menyaring / 3, negated_filter / 3, menyaring / 4, menggabungkan / 3, yang juga memiliki versi fungsi, melakukan pekerjaan yang sangat mirip dengan predikat dengan nama yang sama dalam modul daftar, tapi melakukan operasi yang relevan pada tombol bukannya seluruh elemen list
  • .
  • Kami telah pindah modul evaluasi malas keluar dari distribusi ekstra dan ke dalam modul perpustakaan standar baru yang disebut `malas '. Hal ini juga telah dibuat backend-agnostik.
  • Kami telah membuat perubahan pada modul daftar perpustakaan standar:
  • Kami menambahkan predikat list.member_index0 baru / 3. Hal ini seperti list.member / 2 kecuali bahwa ia juga mengambil parameter yang mewakili indeks berbasis nol dari unsur dalam daftar.
  • Kami menambahkan predikat list.map3_foldl baru / 7 yang memetakan atas daftar memproduksi tiga daftar dan satu nilai dilipat.
  • Kami menambahkan mode semidet dengan akumulator unik untuk list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, dan list.foldl6 / 14.
  • Kami telah menambahkan predikat membagi / 4 dan divide_by_set / 4 ke modul tree_bitset dari perpustakaan standar.
  • Kami telah menambahkan predikat set_ctree234.member / 2 dan set_ctree234.non_empty / 1. Kami telah menambahkan fungsi set_ctree234.from_list / 1.
  • Kami telah menambahkan predikat set_bbbtree.count / 2 dan fungsi set_bbbtree.count / 1. Ini menggantikan predikat set_bbbtree.size / 2 yang sekarang ditinggalkan.
  • Kami telah menambahkan predikat set_ordlist.non_empty / 1
  • .
  • Kami telah menambahkan predikat set_tree234.non_empty / 1 dan fungsi set_tree234.from_list / 1
  • .
  • Kami telah menambahkan predikat set_unordlist.non_empty / 1 dan set_unordlist.count / 2, dan fungsi set_unordlist.count / 1
  • .
  • Semua modul di perpustakaan standar yang menerapkan ADT set, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234, dan set_ctree234), sekarang mendukung lipat lebih set dengan sampai enam akumulator. Mode yang menyediakan akumulator unik dan sebagian besar-unik untuk mengatur lipat juga telah ditambahkan.
  • Kami telah membuat perubahan berikut ke modul array perpustakaan standar:
  • Kami telah menambahkan fungsi unsafe_elem / 2 dan tambahkan / 2.
  • Kami telah menambahkan predikat svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, dan anggota / 2
  • .
  • Kami telah menambahkan predikat version_array.foldl2 / 6, version_array.foldr / 4, dan version_array.foldr2 / 6 ke perpustakaan standar.
  • Kami telah menambahkan mode semidet dengan akumulator yang unik dan sebagian besar-unik untuk predikat sebagai berikut:
  • bimap.foldl2 / 6
  • bimap.foldl3 / 8
  • cord.foldl_pred / 4
  • cord.map_foldl / 5
  • list.map_corresponding_foldl2 / 8
  • list.map_corresponding_foldl3 / 10
  • list.map_corresponding3_foldl / 7
  • map.foldl3 / 8
  • Kami telah menambahkan predikat unsorted_aggregate2 / 6 sampai solusi modul perpustakaan standar.
  • Kami telah menambahkan beberapa predikat dan fungsinya kepada memerlukan modul perpustakaan standar. Predikat maaf / 2 dan maaf / 3 laporan adanya fitur, sedangkan predikat yang tak terduga / 2 dan tak terduga / 3 laporan kesalahan internal dalam program; semua memiliki versi fungsi juga. Predikat mengharapkan / 3 panggilan tak terduga jika kondisi tidak puas. Kami sekarang memiliki mengharapkan / 4 serta harapkan / 3. Untuk mengharapkan / 4 serta harapkan / 3, argumen pertama dan terakhir adalah kondisi yang diharapkan dan pesan kesalahan masing-masing, tetapi dengan mengharapkan / 4, ada dua argumen di tengah untuk menentukan lokasi kesalahan (biasanya nama modul dan predikat masing-masing). Kami juga menambahkan expect_not / 3 dan expect_not / 4, yang seperti diharapkan / 3 dan mengharapkan / 4 masing-masing, kecuali mereka berharap kondisi akan * * palsu, tidak benar.

Apa yang baru dalam versi 10.04.2:

  • Rilis ini adalah rilis bug-fix. Sejumlah masalah yang menyebabkan compiler untuk membatalkan telah diperbaiki, beberapa operasi bisa menghentikan rusak di java kelas telah diperbaiki, dan kami telah menambahkan solusi untuk masalah dengan GCC versi 4.4.

Keterbatasan :

  • Pelaksanaan saat ini belum sepenuhnya menerapkan bahasa Mercury. Keterbatasan utama dari implementasi saat adalah sebagai berikut:
  • Kami tidak mengizinkan pasti aliasing dalam sistem modus. Tanpa ini, mode sebagian dipakai tidak dapat digunakan, sehingga bersarang mode yang unik.
  • Compiler belum menggunakan struktur reuse atau kompilasi-waktu pengumpulan sampah untuk mengeksploitasi mode yang unik.
  • Jenis dan modus inferensi sedikit tidak sempurna.

  • Selain itu, keputusan desain dalam implemenation ini telah memberlakukan batasan sebagai berikut:
  • Predikat dan fungsi dapat memiliki paling banyak sekitar 1000 argumen.

  • Istilah
  • Tinggi-order dapat memiliki paling banyak sekitar 500 argumen.

Software yang serupa

Polygen
Polygen

3 Jun 15

Jess
Jess

3 Jun 15

gears-less
gears-less

20 Feb 15

Komentar untuk Mercury

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!