ISO IEC 10514-1 Bahasa pemrograman

ISO IEC 10514-1 adalah Standar Internasional mengenai Teknologi informasi, khususnya tentang Bahasa pemrograman Bagian 1: Modula-2, Base Language.

Standar versi terbaru yang masih berlaku adalah terbitan tahun … dengan judul berikut :

  • ISO/IEC 10514-1:1996 Information technology — Programming languages — Part 1: Modula-2, Base Language

Standar ini terakhir ditinjau dan dikonfirmasi pada tahun 2008, oleh karena itu versi ini masih dinyatakan tetap berlaku hingga saat ini.

Standar ISO/IEC 10514-1:1996

Memberikan definisi bahasa Modula-2 dan pustaka standarnya serta :

  • spesifikasi simbol untuk representasi program Modula-2,
  • struktur leksikal dan sintaksis dan semantik program Modula-2,
  • antarmuka ke modul pustaka,
  • modul pustaka standar,
  • aturan untuk penggunaan bahasa,
  • kriteria ukuran dan kompleksitas program dan persyaratan untuk implementasi.

Penerbitan Standar ISO/IEC 10514-1:1996

Standar ini diterbitkan dan dipublikasikan pada Juni 1996, berupa dokumen edisi 1 dengan jumlah halaman sebanyak 707 lembar.

Disusun oleh :

  • Technical Committee ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces,
  • atau : Komite Teknis ISO/IEC JTC 1/SC 22 Bahasa pemrograman, lingkungannya, dan antarmuka perangkat lunak sistem.

ICS :

  • 35.060 Languages used in information technology, atau : Bahasa yang digunakan dalam teknologi informasi

Sebagaimana standar ISO lainnya, ISO/IEC 10514-1:1996 ini juga ditinjau setiap 5 tahun dan peninjauan sudah mencapai tahap 90,93 (dikonfirmasi).

Isi Standar ISO/IEC 10514-1:1996

Berikut adalah kutipan isi Standar ISO/IEC 10514-1:1996 yang diambil dari Online Browsing Platform (OBP) dari situs resmi iso.org.

Yang ditambah dengan berbagai keterangan dan informasi untuk mempermudah pemahaman pembaca.

Hanya bagian standar yang informatif yang tersedia untuk umum, OBP hanya menampilkan hingga klausa 3 saja.

Oleh karena itu, untuk melihat konten lengkap dari standar ini, maka pembaca harus membeli standar dari ISO ini secara resmi.

Daftar Isi Standar ISO/IEC 10514-1:1996

  • Foreword
  • Introduction
  • Section 1: Scope
  • Goals
  • Specifications included in this part of ISO/IEC 10514
  • Specifications not within the scope of this part of ISO/IEC 10514
  • Section 2: Normative References
  • Section 3: Definitions, Structure, and Conventions
  • 3.1 Definitions
  • 3.2 Structure of the Formal Definition
  • 3.3 Conventions
  • Section 4: Requirements for Implementations
  • 4.1 Translation
  • 4.2 Source Code Representation
  • 4.3 Ordering of Declarations
  • 4.4 Predefined Entities
  • 4.5 Library Modules
  • 4.6 Errors
  • 4.7 Exceptions
  • 4.8 Implementation-dependencies
  • 4.9 Documentation
  • 4.10 Statement of Compliance
  • 4.11 Minimum requirements
  • Section 5: The Lexis
  • 5.1 Source Code Structure
  • 5.2 Word tokens
  • 5.3 Symbols and Operators
  • 5.4 Constant Literals
  • 5.5 Separators
  • 5.6 Letters and National Characters
  • Section 6: The Language
  • 6.1 Programs, Program Modules, and Separate Modules
  • 6.2 Definitions and Declarations
  • 6.3 Data Types
  • 6.4 Expression and Assignment Compatibility
  • 6.5 Blocks
  • 6.6 Statements
  • 6.7 Variable Designators
  • 6.8 Expressions
  • 6.9 Parameter Compatibility and Argument Binding
  • 6.10 Predefined Types, Standard Procedures and Standard Functions
  • 6.11 The Environment and Auxiliary Formal Definitions
  • 6.12 The Storage Model and Auxiliary Formal Definitions
  • Section 7: System Modules
  • 7.1 The Module SYSTEM
  • 7.2 The Module COROUTINES
  • 7.3 The Module EXCEPTIONS
  • 7.4 The Module TERMINATION
  • 7.5 The Module M2EXCEPTION
  • Section 8: Required Library Modules
  • 8.1 The Module Storage
  • 8.2 The Modules LowReal and LowLong
  • 8.3 The Module CharClass
  • Section 9: Standard Library Modules
  • 9.1 The Mathematical Libraries
  • 9.2 The Input/Output Library
  • 9.3 Concurrent Programming
  • 9.4 The Module Strings
  • 9.5 The String Conversions Library
  • 9.6 The Module SysClock
  • Section 10: Auxiliary Formal Model Definitions
  • 10.1 Extensions to VDM-SL
  • 10.2 VDM-SL Functions
  • Annex A Minimum Limit Specifications
  • A.1 The Limit-specification Generators
  • Annex B The Specification of Library Modules
  • B.1 Components of a Library Module Specification
  • B.2 Interpretation of a Library Module Specification
  • Annex C Collected Modula-2 Concrete Syntax
  • C.1 Programs, Program Modules, and Separate Modules
  • C.2 Definitions and Declarations
  • C.3 Data Types
  • C.4 Blocks
  • C.5 Statements
  • C.6 Variable Designators
  • C.7 Expressions
  • C.8 Parameter Compatibility and Argument Binding
  • C.9 Lexical components
  • Annex D Collected Modula-2 Abstract Syntax
  • Annex E Modula-2 Glossary
  • Annex F Participating Individuals and Organisations
  • Key to the Index

Foreword : Kata pengantar ISO IEC 10514-1

ISO (Organisasi Internasional untuk Standardisasi) dan IEC (Komisi Elektroteknik Internasional) membentuk sistem khusus untuk standardisasi di seluruh dunia.

Badan-badan nasional yang menjadi anggota ISO atau IEC berpartisipasi dalam pengembangan Standar Internasional,

melalui komite teknis yang dibentuk oleh organisasi masing-masing untuk menangani bidang kegiatan teknis tertentu.

Komite teknis ISO dan IEC berkolaborasi dalam bidang yang menjadi kepentingan bersama.

Organisasi internasional lainnya, pemerintah dan non-pemerintah, bekerja sama dengan ISO dan IEC, juga ambil bagian dalam pekerjaan tersebut.

Di bidang teknologi informasi, ISO dan IEC telah membentuk komite teknis bersama, ISO/IEC JTC 1.

Rancangan Standar Internasional yang diadopsi oleh komite teknis bersama diedarkan ke badan-badan nasional untuk pemungutan suara.

Publikasi sebagai Standar Internasional memerlukan persetujuan setidaknya 75% dari badan-badan nasional yang memberikan suara.

Standar Internasional ISO/IEC 10514-1 disiapkan oleh :

  • Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces,
  • Atau : Komite Teknis Bersama ISO/IEC JTC 1, Teknologi informasi, Subkomite SC 22, Bahasa pemrograman, lingkungan mereka, dan antarmuka perangkat lunak sistem.

ISO/IEC 10514 terdiri dari bagian berikut, dengan judul umum Teknologi informasi — Bahasa pemrograman:

  • — Bagian 1: Modula-2, Bahasa Dasar
  • — Bagian 2: Modula-2 berorientasi objek

Lampiran A dan B merupakan bagian integral dari bagian ISO/IEC 10514 ini. Lampiran C sampai F hanya untuk informasi.

Mengenal ISO dan IEC

ISO (International Organization for Standardization) adalah suatu organisasi atau lembaga nirlaba internasional.

Tujuan dari ISO adalah untuk membuat dan memperkenalkan standar dan standardisasi internasional untuk berbagai tujuan.

Sebagaimana dengan ISO, IEC juga merupakan organisasi standardisasi internasional yang menyusun dan menerbitkan standar-standar internasional.

Namun ruang lingkupnya adalah untuk seluruh bidang elektrik, elektronik dan teknologi yang terkait atau bidang teknologi elektro (electrotechnology).

Lebih jelas mengenai ISO dan IEC dapat dibaca pada artikel lain dari standarku.com berikut :

Introduction : Pengenalan Standar ISO IEC 10514-1

Bagian ISO/IEC 10514 ini, Modula-2 (Bahasa dasar), memberikan spesifikasi bentuk dan arti program Modula-2,

dan dengan mengacu pada spesifikasi tersebut menetapkan persyaratan untuk implementasi Modula-2.

Modula-2 adalah bahasa pemrograman tujuan umum, yang dicirikan oleh modul yang menyediakan enkapsulasi dan penyembunyian data dan prosedur.

Ini menyediakan fasilitas untuk pemrograman konkuren berdasarkan coroutine, dan termasuk fasilitas untuk pemrograman tingkat rendah.

Modula-2, oleh karena itu, cocok untuk pemrograman sistem.

Fasilitas seperti input/output, operasi matematika dan pemrosesan string tersedia melalui modul library.

Modula-2 adalah turunan dari Modula yang nenek moyangnya adalah Pascal.

Ketiga bahasa tersebut dirancang oleh Profesor Niklaus Wirth, ETH, Zurich, Swiss.

Deskripsi pertama Modula-2 diterbitkan pada tahun 1980.

Bahasa ini menjadi populer pada awal 1980-an dan banyak implementasi dikembangkan.

Karena interpretasi yang berbeda dari berbagai deskripsi Modula-2, perbedaan signifikan dalam implementasi muncul,

dan pada tahun 1984 sekelompok pendukung Modula-2 membentuk panel BSI untuk mengembangkan standar.

Panel BSI berhasil mengusulkan item kerja baru ke ISO, dan kelompok kerja ISO bertemu untuk pertama kalinya pada tahun 1987.

Pada tahun 1989 draft pertama standar ini diterbitkan, dan pada tahun 1992 draft komite kedua diterbitkan.

Dokumen dasar untuk perumusan bagian ISO/IEC 10514 ini adalah berbagai edisi Pemrograman dalam Modula-2 oleh Niklaus Wirth, yang diterbitkan oleh Springer-Verlag.

Bagian dari ISO/IEC 10514 ini berisi model formal Modula-2; demi umum, konsistensi, dan presisi,

perbedaan telah diperkenalkan antara model dan edisi ketiga buku Profesor Wirth Programming in Modula-2 dan ini diidentifikasi sebagai ‘klarifikasi’ atau ‘perubahan’.

Selama standarisasi Modula-2, diakui bahwa pengguna bahasa menuntut ekstensi ke bahasa yang dirancang oleh Profesor Wirth dan pelaksana merespons dengan menyediakannya.

Oleh karena itu, beberapa perubahan dan perluasan telah dilakukan untuk mencegah divergensi lebih lanjut, dan untuk memastikan konsistensi dan koherensi.

Bagian ISO/IEC 10514 ini menggunakan berbagai notasi untuk menentukan persyaratan yang terkandung di dalamnya.

Sebuah metabahasa sintaksis standar digunakan untuk menentukan struktur leksikal dan sintaksis.

Bahasa Spesifikasi Metode Pengembangan Wina (VDM-SL), yang didasarkan pada matematika konvensional,

digunakan untuk mendefinisikan semantik bahasa secara matematis yang ketat.

Selain itu, semantik bahasa Modula-2, modul sistem dan pustaka standar juga ditentukan menggunakan bahasa alami, meskipun dalam bentuk yang mungkin ambigu.

Hal ini dimaksudkan agar VDM-SL yang sesuai menyelesaikan ambiguitas tersebut.

Jika persyaratan bahasa alami dan yang diekspresikan dalam konflik VDM-SL, maka ada kesalahan dalam standar ini.

Dalam banyak kasus, detail kecil dari semantik bahasa hanya dapat diselesaikan dengan mengacu pada VDM-SL;

dengan ini berarti deskripsi bahasa alami telah dibuat relatif sederhana.

Sejumlah konvensi tipografi dan gaya telah diadopsi untuk membuat deskripsi bahasa alami ringkas.

Definisi istilah kunci yang digunakan dalam bagian ISO/IEC 10514 ini dinyatakan dalam bahasa alami, dengan referensi ke VDM-SL jika sesuai.

Persyaratan untuk implementasi yang sesuai diberikan dalam bahasa alami, dengan referensi ke VDM-SL jika sesuai.

Pengembangan sebagian besar spesifikasi formal semantik Modula-2 di bagian ISO/IEC 10514 ini disponsori oleh Program Penelitian Alvey Inggris.

Pekerjaan yang disponsori Alvey dilakukan di Departemen Studi Komputer Universitas Leicester bekerja sama dengan Departemen Rekayasa Perangkat Lunak QA BSI.

ISO/IEC 10514-1:1996 Klausa 1-3

Section 1:   Scope : Lingkup

1.1   Goals : Tujuan

Tujuan dari bagian ISO/IEC 10514 ini adalah untuk :

  • memberikan definisi yang tepat dari bahasa Modula-2 dan pustaka standarnya dengan menyediakan model matematis dari keduanya;
  • memberikan resolusi perbedaan antara interpretasi deskripsi lain dari Modula-2 dan perpustakaan standarnya, sambil berusaha untuk melestarikan investasi dalam praktik yang ada;
  • menghapus fitur yang dianggap berlebihan, cacat bawaan, atau tidak memadai;
  • menentukan bahasa baru dan fasilitas perpustakaan standar di mana kebutuhan dianggap ada;
  • mempertahankan prinsip-prinsip umum Modula-2 yang ditetapkan oleh penemunya, sambil memungkinkan modernisasi dan standarisasi di kemudian hari.

1.2 Spesifikasi yang disertakan dalam bagian ISO/IEC 10514

Bagian ISO/IEC 10514 ini memberikan spesifikasi untuk:

  • simbol yang diperlukan untuk representasi program Modula-2, termasuk komentar, literal, dan arahan kode sumber;
  • struktur leksikal, struktur sintaksis dan semantik program Modula-2, termasuk program yang menggunakan modul sistem.
  • antarmuka dan semantik modul library Modula-2 standar.
  • modul-modul terpisah dari pustaka standar yang harus disediakan oleh implementasi yang sesuai;
  • pelanggaran aturan penggunaan bahasa, modul sistem dan modul pustaka standar yang perlu dideteksi oleh implementasi yang sesuai;
  • kriteria tertentu untuk ukuran dan kompleksitas program yang harus diterima oleh implementasi yang sesuai;
  • persyaratan kepatuhan lebih lanjut untuk implementasi, termasuk persyaratan dokumentasi.

1.3 Spesifikasi yang tidak termasuk dalam cakupan bagian ISO/IEC 10514

Bagian ISO/IEC 10514 ini tidak memberikan spesifikasi untuk:

  • representasi yang mendasari tipe data yang telah ditentukan sebelumnya (kecuali dalam kasus tipe paket; lihat 7.1.7.1);
  • metode di mana implementasi dipanggil (termasuk identifikasi modul program dan definisi terkait serta modul implementasi);
  • metode penyimpanan modul kompilasi (termasuk korespondensi antara nama modul dan nama file sistem tempat file digunakan);
  • metode di mana implementasi menerima input (termasuk pengkodean teks sumber dan termasuk jumlah modul kompilasi yang diterima untuk setiap pemanggilan);
  • aspek kinerja implementasi, dan aspek kualitas tertentu yang tidak tercakup dalam 1.2;
  • efek eksekusi program yang menggunakan ekstensi ke bahasa, ekstensi ke modul sistem atau ekstensi ke modul pustaka standar, atau yang menyimpang dari bagian ISO/IEC 10514 ini;
  • efek melanjutkan eksekusi program di mana pengecualian telah terjadi dan eksekusi berlanjut tanpa pengecualian yang dimunculkan;
  • arti dari program yang bergantung pada definisi nilai yang bergantung pada implementasi atau perilaku yang bergantung pada implementasi.

Section 2:   Normative References : Referensi Normatif

Standar berikut berisi ketentuan yang, melalui referensi dalam teks ini, merupakan ketentuan dari bagian ISO/IEC 10514 ini.

Pada saat publikasi, edisi yang ditunjukkan adalah valid.

Semua standar dapat direvisi, dan pihak-pihak dalam perjanjian berdasarkan bagian ISO/IEC 10514 ini,

didorong untuk menyelidiki kemungkinan penerapan edisi terbaru dari standar yang ditunjukkan di bawah ini.

Anggota IEC dan ISO memelihara daftar Standar Internasional yang berlaku saat ini.

  • ISO/IEC 10967-1:1994, Information technology—Language independent arithmetic—Part 1: Integer and floating point arithmetic.
  • ISO/IEC 13817-1:…1), Information technology — Programming languages, their environments and system software interfaces — Vienna Development Method — Specification Language—Part 1: Base language.
  • BS 6154:1981, Method of defining Syntactic Metalanguage.
  • IEC 559:1989, Binary floating-point arithmetic for microprocessor systems

Section 3:   Definitions, Structure, and Conventions : Definisi, Struktur, dan Konvensi

3.1   Definitions : Definisi

Untuk tujuan bagian ISO/IEC 10514 ini, definisi berikut berlaku.

Catatan 1 : Daftar istilah yang digunakan juga disediakan — lihat lampiran E.

3.1.1 source code : Kode sumber

Sebuah fragmen teks yang berpotensi menjadi bagian dari representasi teks dari komponen program Modula-2.

3.1.2 separate module : modul terpisah

Komponen program Modula-2, yang dapat dikembangkan, diterjemahkan, dan disediakan secara terpisah,

dan yang terdiri dari enkapsulasi data dan/atau prosedur yang tersedia untuk digunakan oleh klien modul,

bersama dengan tindakan apa pun yang dijalankan untuk inisialisasi modul, dan tindakan apa pun yang dijalankan untuk menyelesaikan modul.

Catatan 1 :

  • Antarmuka ke modul terpisah disediakan oleh modul definisi Modula-2 sehingga modul terpisah lainnya yang ditulis dalam Modula-2 dapat menggunakan fasilitasnya.
  • Bagian yang dapat dieksekusi dari modul terpisah ditentukan dalam Modula-2 oleh modul implementasi; namun, implementasi modul terpisah tidak perlu diturunkan dari kode sumber Modula-2.

3.1.3 library : Perpustakaan

Kumpulan modul terpisah yang disediakan untuk penggunaan umum.

3.1.4 library module : modul perpustakaan

Modul terpisah yang merupakan bagian dari perpustakaan.

3.1.5 standard library : perpustakaan standar

Pustaka yang terdiri dari modul terpisah yang ditentukan dalam bagian ISO/IEC 10514 ini: modul yang diperlukan di bagian 8 dan modul yang tidak diperlukan di bagian 9.

3.1.6 predefined : sudah ditentukan sebelumnya

Istilah yang diterapkan ke entitas (modul, prosedur, tipe atau konstanta), atau pengidentifikasi, yang ada di dalam Modula-2.

3.1.7 pervasive identifier

Pengidentifikasi dari prosedur, tipe, atau konstanta yang telah ditentukan sebelumnya dan yang cakupannya mencakup keseluruhan modul kompilasi,

kecuali ditimpa oleh pengidentifikasi ejaan yang sama yang diperkenalkan dalam definisi atau deklarasi.

3.1.8 system module : modul sistem

Modul yang telah ditentukan sebelumnya yang merupakan enkapsulasi entitas yang telah ditentukan sebelumnya,

yang pengidentifikasinya hanya tersedia dengan mengimpor dari modul sistem tersebut.

Tidak seperti modul terpisah, modul sistem tidak dapat diganti.

Catatan 1 : Modul sistem tidak merupakan bagian dari pustaka standar.

3.1.9 computer system : sistem komputer

Kombinasi perangkat keras dan, opsional, firmware dan perangkat lunak (misalnya sistem operasi) yang memungkinkan eksekusi perangkat lunak.

3.1.10 Modula-2 implementation : Implementasi Modula-2

Cara program yang dapat dieksekusi untuk sistem komputer dihasilkan dari komponen program Modula-2.

>Sebuah implementasi setidaknya terdiri dari:

  • – seorang penerjemah;
  • — dukungan run-time yang diperlukan untuk entitas yang telah ditentukan sebelumnya seperti modul sistem dan prosedur standar;
  • — modul terpisah yang diperlukan;
  • — perangkat lunak apa pun yang diperlukan untuk mendukung atau mengintegrasikan hal-hal di atas.

Catatan 1 : Istilah ‘penerjemah’ dimaksudkan untuk mencakup teknologi baik yang dikenal (misalnya kompiler dan juru bahasa) dan yang belum dikembangkan.

Catatan 2 : Penerjemah tidak perlu bekerja dari input kode sumber karena implementasi dapat memilih untuk menggunakan representasi non-teks yang diturunkan dari kode sumber. – lihat 4.1.

Catatan 3 : Seorang penerjemah dapat menangani akses ke entitas yang telah ditentukan dengan cara khusus (misalnya ‘panggilan’ ke modul sistem ‘prosedur’ dapat diterjemahkan sebagai kode sebaris).

3.1.11 standard library module implementation : implementasi modul perpustakaan standar

Sarana dimana modul dari pustaka standar disediakan secara independen dari implementasi Modula-2.

3.1.12 implementor : pelaksana

Produser implementasi Modula-2.

3.1.13 processor : prosesor

Kombinasi sistem komputer dan implementasi yang memungkinkan penerjemahan dan eksekusi program Modula-2.

Sebuah ‘prosesor’ dapat mencakup dua sistem komputer jika terjemahan silang terlibat;

dalam situasi ini penerjemah implementasi dioperasikan pada sistem komputer host dan menghasilkan kode untuk dieksekusi pada sistem komputer target.

  • Catatan 1 : Istilah ‘prosesor’ tidak menghalangi implementasi yang melibatkan lebih dari satu prosesor perangkat keras.

3.1.14 abstract implementation module : modul implementasi abstrak

Spesifikasi semantik modul terpisah menggunakan notasi formal VDM-SL — lihat lampiran B.

3.1.15 sourced implementation module : modul implementasi sumber

Implementasi modul terpisah yang kode sumbernya disediakan,

dan semantiknya ditentukan oleh semantik kode sumber tersebut sebagaimana ditentukan oleh bagian ISO/IEC 10514 ini.

3.1.16 standard mode : mode standar

Mode penggunaan implementasi yang sesuai dengan persyaratan bagian ISO/IEC 10514 ini.

3.1.17 implementation-defined : implementasi-ditentukan

Istilah yang diterapkan pada nilai yang tidak ditentukan oleh bagian ISO/IEC 10514 ini,

tetapi memerlukan definisi sebelum makna program yang bergantung pada nilai tersebut dapat ditentukan.

  • Catatan 1 : Misalnya, nilai minimum dan maksimum dari tipe INTEGER ditentukan oleh implementasi, dan nilai panggilan SYSTEM.CAST ditentukan oleh implementasi.

Bagian ISO/IEC 10514 ini memerlukan implementasi yang sesuai untuk disertai dengan dokumentasi yang mencakup definisi nilai yang ditentukan implementasi untuk setiap prosesor — lihat 4.9.

3.1.18 implementation-dependent : bergantung pada implementasi

Istilah yang diterapkan pada nilai atau perilaku yang tidak ditentukan oleh bagian ISO/IEC 10514 ini,

dan yang tidak memerlukan definisi karena arti program yang bergantung pada definisi tersebut tidak ditentukan oleh persyaratan bagian ISO ini /IEC 10514.

Catatan 1 :

  • Misalnya, urutan evaluasi operan dalam ekspresi bergantung pada implementasi;
  • akibatnya, program yang bergantung pada urutan evaluasi operan dalam ekspresi tidak diberikan arti oleh bagian ISO/IEC 10514 ini.

3.1.19 error : kesalahan

Kode sumber dikatakan salah atau mengandung kesalahan jika salah satu kode sumber tidak terbentuk dengan baik,

(yaitu tidak sesuai dengan aturan sintaksis leksikal atau konkret) atau jika kode sumber yang benar secara sintaksis tidak terbentuk dengan baik menurut statis aturan semantik.

Misalnya, fragmen kode sumber yang benar secara sintaksis a1 + a2 salah jika entitas yang ditunjuk oleh a1 (atau a2) adalah array.

3.1.20 exception : pengecualian

Peristiwa run-time yang melanggar aturan semantik dinamis dari bagian ISO/IEC 10514 ini.

  • Catatan 1 : Misalnya, pengecualian terjadi jika ada upaya untuk melakukan dereferensi variabel pointer yang nilainya NIL.

Pengecualian harus dideteksi dan dimunculkan oleh implementasi, dalam hal ini akan ada aliran kontrol yang ditentukan dari program yang berbeda dari aliran kontrol normal.

3.1.21 exception raising : peningkatan pengecualian

Pemanggilan penanganan pengecualian, atau penghentian luar biasa, setelah deteksi terjadinya pengecualian.

Catatan 1 :

  • Bagian ISO/IEC 10514 ini mengharuskan terjadinya pengecualian tertentu dideteksi dan dimunculkan oleh implementasi dalam mode standar.
  • Fungsi deteksi wajib digunakan dalam definisi formal dalam kasus ini dan deteksi non-wajib digunakan sebaliknya — lihat 4.7.

Catatan 2 :

  • Jika implementasi tidak mendeteksi dan memunculkan pengecualian yang telah terjadi, efeknya bergantung pada implementasi;
  • akibatnya, bagian dari ISO/IEC 10514 ini tidak memberi arti pada program yang bergantung pada deteksi pengecualian jika pengecualian itu adalah pengecualian yang tidak diperlukan deteksi, lihat 1.3.

3.1.22 declare-before-use-in-declarations : deklarasikan-sebelum-digunakan-dalam-deklarasi

Implementasi yang hanya mengharuskan entitas yang digunakan dalam deklarasi dideklarasikan sebelum digunakan disebut sebagai deklarasi-sebelum-penggunaan-dalam-deklarasi.

(Mereka sering disebut implementasi multi-pass.) Implementasi deklarasi-sebelum-penggunaan-dalam-deklarasi dapat,

misalnya, memproses program yang berisi modul lokal yang saling mengimpor.

Implementasi disebut deklarasi-sebelum-penggunaan-dalam-deklarasi jika memenuhi predikat pertama dalam 6.2.7.

3.1.23 declare-before-use : nyatakan-sebelum-digunakan

Implementasi yang bersikeras bahwa semua entitas kecuali tipe pointer dan tipe prosedur dideklarasikan sebelum digunakan disebut sebagai deklarasi-sebelum-penggunaan.

(Mereka sering tidak tepat disebut implementasi ‘single-pass’.) Implementasi deklarasi-sebelum-penggunaan tidak dapat,

misalnya, memproses program yang berisi modul lokal yang diimpor dari satu sama lain.

Implementasi disebut deklarasi-sebelum-penggunaan jika memenuhi predikat kedua dalam 6.2.7.

3.2   Structure of the Formal Definition : Struktur Definisi Formal

Bagian ISO/IEC 10514 ini menggunakan notasi formal dan bahasa alami untuk menyatakan persyaratannya.

Untuk sebagian besar bentuk dan makna program Modula-2 dan modul sistem, dan modul perpustakaan yang mereka gunakan,

diungkapkan menggunakan definisi formal disertai dengan pernyataan dan catatan normatif bahasa alami.

Semantik program Modula-2 dan pustaka standar dinyatakan secara formal menggunakan VDM-SL (ISO/IEC 13817) dengan beberapa ekstensi lokal yang dijelaskan dalam 10.1.

Spesifikasi konstruksi bahasa

Definisi formal konstruksi bahasa Modula-2 dibagi menjadi leksis dan lima bagian utama yang judulnya muncul di bawah setiap konstruksi bahasa:

  • sintaksis konkret, sintaksis abstrak, semantik deklarasi, semantik statis, dan semantik dinamis.

Bagian lain dari definisi muncul di bawah judul properti dan domain.

3.2.1 lexis : leksis

Himpunan aturan mendefinisikan elemen leksikal dari kode sumber Modula-2 dalam hal karakter atau urutan karakter.

Lexis secara resmi diungkapkan menggunakan Metabahasa Sintaksis Standar (BS 6154, 1981) dan diberikan di bagian 5.

3.2.2 concrete syntax : sintaksis konkret

Himpunan aturan gramatikal, atau ‘produksi’, mendefinisikan struktur sintaksis bahasa dalam hal token leksikal.

Sintaks konkret secara formal diungkapkan menggunakan Metabahasa Sintaksis Standar (BS 6154, 1981) dan diberikan secara terpisah untuk setiap konstruksi dalam bahasa di bagian 6.

Istilah dari sintaksis konkret digunakan dalam pernyataan normatif bahasa alami.

Token sintaksis konkret memiliki nama yang tampaknya bermakna, dan beberapa produksi hadir semata-mata untuk memungkinkan istilah tersebut digunakan

(misalnya, ekspresi konstanta token secara sederhana didefinisikan sebagai ekspresi).

Arti sebenarnya dari istilah-istilah ini diungkapkan oleh semantik statis.

  • Catatan 1 : Aturan sintaksis konkret dikumpulkan dalam lampiran informatif C.

3.2.3 abstract syntax : sintaksis abstrak

Versi abstrak dari struktur dasar bahasa dalam hal hierarki tipe VDM-SL.

Penerjemahan antara representasi yang dibutuhkan oleh sintaksis konkret dan abstrak bersifat implisit.

Dalam beberapa kasus, di mana sintaks abstrak tidak secara langsung terkait dengan sintaksis konkret,

anotasi ditambahkan untuk menjelaskan perbedaan yang tampak.

Sintaks abstrak hanya digunakan dalam spesifikasi VDM-SL.

  • Catatan 1 : Aturan sintaksis abstrak dikumpulkan dalam lampiran informatif D.

3.2.4 declaration semantics : semantik deklarasi

Himpunan aturan yang memberikan arti definisi, deklarasi, dan impor dan ekspor, untuk tujuan mengekspresikan semantik statis bahasa.

Aturan mendefinisikan ruang lingkup pengidentifikasi dan artinya dalam ruang lingkup itu — lihat 6.2.

Di bagian ISO/IEC 10514 ini, visibilitas dan arti pengenal pada titik penggunaannya ditentukan oleh nilai lingkungan yang berlaku pada titik tersebut — lihat 6.11.1.

Fungsi VDM-SL mengekspresikan semantik deklarasi membangun nilai lingkungan dari nilai lingkungan yang diberikan.

3.2.5 static semantics : semantik statis

Semantik statis VDM-SL adalah seperangkat aturan, yang diekspresikan dalam bentuk fungsi bernilai kebenaran (yaitu predikat ‘well-formedness’) pada komponen sintaks abstrak,

yang menentukan legalitas program Modula-2 yang direpresentasikan secara abstrak .

Pernyataan normatif bahasa alami yang sesuai mengungkapkan batasan yang tidak secara formal dipaksakan oleh sintaksis konkret

(misalnya, di mana komponen yang disebut ekspresi konstan diharapkan, komponen itu adalah ekspresi yang dapat dievaluasi tanpa menjalankan program).

3.2.6 dynamic semantics : semantik dinamis

Himpunan aturan yang memberikan arti dari elaborasi deklarasi, dan eksekusi pernyataan, dari sebuah program yang memenuhi semantik statis.

Dalam VDM-SL, semantik dinamis diekspresikan oleh operasi yang secara implisit beroperasi pada keadaan internal — lihat 6.12.1.

3.2.7 properties : properti

Sekumpulan persamaan atau pertidaksamaan yang menentukan persyaratan dengan memberikan hubungan yang harus diterapkan,

antara nilai tipe VDM-SL yang digunakan dalam spesifikasi formal.

3.2.8 domains : domain

Tipe VDM-SL yang nilainya digunakan untuk membangun model matematika yang mengekspresikan semantik program Modula-2.

Dua jenis utama tersebut digunakan untuk memodelkan lingkungan dan keadaan;

jenis VDM-SL lain yang diberikan di bawah judul domain adalah jenis komponen dari satu atau kedua lingkungan atau keadaan.

Specification of predefined entities : Spesifikasi entitas yang telah ditentukan

Pengidentifikasi tipe, konstanta, prosedur, dan modul yang telah ditentukan sebelumnya dapat muncul dalam representasi konkret dan abstrak dari suatu program,

tetapi entitas yang telah ditentukan sebelumnya ini tidak memiliki definisi atau deklarasi yang muncul dalam suatu program.

Semantik deklarasi untuk entitas yang telah ditentukan sebelumnya memberikan arti dari pengidentifikasi ini,

untuk tujuan mengekspresikan semantik statis yang mengatur penggunaannya.

Semantik statis dan dinamis yang berlaku untuk penggunaan tipe, konstanta, dan modul yang telah ditentukan sebelumnya,

diberikan oleh semantik statis dan dinamis untuk konstruksi bahasa yang memungkinkan penggunaan tipe, konstanta, dan modul tersebut.

Semantik statis dan dinamis untuk panggilan prosedur yang telah ditentukan diberikan secara eksplisit untuk setiap prosedur tersebut.

Dalam hal spesifikasi modul sistem, modul definisi semu diberikan untuk tujuan informasi saja.

Specification of separate modules : Spesifikasi modul terpisah

Dalam hal spesifikasi modul terpisah, modul definisi diberikan di mana semantik deklarasi, semantik statis, dan semantik dinamis dari modul definisi akan diterapkan.

Semantik dinamis panggilan prosedur yang diekspor oleh modul terpisah diberikan secara eksplisit untuk setiap prosedur tersebut dan merupakan bagian dari modul implementasi abstrak untuk modul terpisah. Aturan untuk mengikat modul implementasi abstrak ke definisi formal lainnya diberikan dalam lampiran normatif B.

3.3   Conventions : Konvensi

Konvensi berikut yang digunakan dalam bagian ISO/IEC 10514 ini harus ditafsirkan seperti yang dijelaskan di bawah ini.

3.3.1   Informative text : Teks informatif

Pada titik tertentu di bagian ISO/IEC 10514 ini, teks informatif, bukan teks normatif muncul.

Secara khusus, teks tersebut sering muncul dalam paragraf pengantar segera setelah judul klausa atau sub-klausa (sebelum spesifikasi sintaksis konkret atau semantik statis),

dan dalam batas-batas bagian di mana ia dibatasi sebagai catatan, contoh, klarifikasi, dan perubahan, seperti yang dicontohkan di bawah ini.

Catatan — Catatan biasanya dicetak dalam font yang lebih kecil daripada teks normatif.

Modul definisi semu dari modul sistem harus dianggap sebagai teks informatif.

Jika perlu, bagian dari VDM-SL dijelaskan melalui komentar bahasa alami yang informatif yang diberi label sebagai anotasi.

3.3.2   Typographical conventions : Konvensi tipografi

Konvensi tipografi berikut diamati.

  • Aturan produksi leksikal dan aturan sintaksis konkret dicetak dalam font sans-serif. Pengidentifikasi meta dicetak dalam font yang sama, mis. karakter nasional.
  • Fungsi, operasi, dan nilai VDM-SL dicetak dalam font miring, mis. t-variabel-designator.
  • Bila fungsi atau operasi digunakan dalam fungsi atau operasi VDM-SL, nomor halaman di mana fungsi atau operasi didefinisikan diberikan di sisi kanan halaman.
  • Fragmen Modula-2 atau kata kunci dll. dicetak dalam font monospace, mis. CONST PI = 3.1415926535897932384626433832795028841972;
  • Beberapa modul definisi modul pustaka standar atau modul definisi semu dari modul sistem berisi tipe yang ditentukan implementasi dan nilai konstanta yang ditentukan implementasi. Ini ditunjukkan di antara kurung sudut < dan >.

3.3.3   References to pervasive identifiers : Referensi ke pengidentifikasi yang meresap

Bagian dari ISO/IEC 10514 ini memberi arti pada program di mana pengidentifikasi dieja dengan cara yang sama,

seperti pengenal meresap diperkenalkan dalam definisi atau deklarasi entitas baru, tidak terkait dengan entitas yang telah ditentukan sebelumnya.

Dalam program seperti itu, arti dari pengenal yang meresap ditimpa dalam lingkup pengenal dengan ejaan yang sama yang diperkenalkan dalam definisi atau deklarasi.

Bagian ISO/IEC 10514 ini secara keseluruhan mengacu pada pengenal meresap dalam font monospace (misalnya BOOLEAN),

dengan implikasi bahwa makna aslinya, yang telah ditentukan sebelumnya, dimaksudkan.

Misalnya, referensi ke tipe BOOLEAN adalah referensi ke tipe yang telah ditentukan sebelumnya yang dilambangkan dengan pengidentifikasi BOOLEAN pervasive,

dan bukan untuk definisi ulang lokal apa pun yang mungkin telah dibuat.

3.3.4   Interpretation of non-VDM-SL notations :Interpretasi notasi non-VDM-SL

Modul definisi yang digunakan dalam spesifikasi modul perpustakaan harus ditafsirkan,

sesuai dengan sintaks konkret, semantik deklarasi, semantik statis, dan semantik dinamis modul definisi sebagaimana ditentukan dalam bagian 6.

Komentar modula-2 yang muncul dalam modul definisi ini harus ditafsirkan sebagai catatan.

Modul definisi semu yang digunakan dalam spesifikasi modul sistem harus ditafsirkan sebagai catatan,

yang menguraikan semantik deklarasi fasilitas yang disediakan oleh modul sistem dan semantik statis yang berlaku untuk penggunaannya.

(Semantik deklarasi, semantik statis, dan semantik dinamis didefinisikan secara eksplisit dalam klausa yang relevan dari bagian 7.)

Bahasa alami yang muncul di antara tanda tanya di sebelah kanan aturan produksi sintaksis harus ditafsirkan sebagai persyaratan normatif.

Jika istilah ‘ditentukan implementasi’ dan ‘tergantung implementasi’ muncul (dalam notasi apa pun, dengan atau tanpa tanda hubung),

persyaratan bagian 4 (khususnya persyaratan dokumentasi) akan berlaku.

Misalnya, mengingat ekspresi VDM-SL yang ditentukan implementasi: Char-set bagian 4 membutuhkan implementor,

untuk menyediakan set karakter dan untuk mendokumentasikan elemen apa pun di set itu.

3.3.5   References to formal parameter names : Referensi ke nama parameter formal

Untuk memungkinkan deskripsi singkat tentang arti prosedur dalam modul perpustakaan standar,

sebuah konvensi telah diadopsi di mana penjelasan persyaratan diberikan dalam hal panggilan prosedur dengan nama parameter formal di tempat parameter aktual.

Oleh karena itu deskripsi mengacu pada nama parameter formal seolah-olah mereka menunjukkan variabel;

presisi disediakan dalam definisi VDM-SL yang menyertai semua deskripsi bahasa alami.

Catatan ISO IEC 10514-1

Misalnya, modul Strings menyediakan prosedur yang memiliki judul berikut:

PROSEDUR Tambahkan (sumber: ARRAY OF CHAR; VAR tujuan: ARRAY OF CHAR);

Deskripsi informal yang sesuai dari Strings.Append adalah:

The call : Panggilan

Append(source, destination) : Tambahkan (sumber, tujuan)

akan membuat nilai string baru dengan menambahkan nilai string di sumber ke tujuan.

Jika panjang nilai string yang dibuat melebihi kapasitas tujuan, nilai string akan dipotong ke kapasitas tujuan, dan nilai terpotong akan ditetapkan ke tujuan.

Jika panjang nilai string yang dibuat kurang dari kapasitas tujuan, terminator string harus ditambahkan ke nilai string,

dan nilai yang dihasilkan harus ditetapkan ke tujuan.

Ini menyederhanakan deskripsi sumber parameter nilai karena selalu dapat dirujuk dengan nama,

dan tidak ada perbedaan yang perlu dibuat antara nilai literal dan ekspresi non-konstan.

Demikian artikel dari standarku.com mengenai Standar ISO/IEC 10514-1:1996.

Mohon saran dari pembaca untuk kelengkapan isi artikel ini, silahkan saran tersebut dapat disampaikan melalui kolom komentar.

Baca artikel lain :

Sumber referensi :

Leave a Comment