Paradigma pemrograman dasar. Konsep paradigma pemrograman Memori deklaratif dan prosedural


Peringkat: / 0
Tampilan Detail: 3084

Paradigma Pemrograman

Sebenarnya apa itu paradigma? Kita dapat mengatakan bahwa ini adalah pandangan tertentu tentang fenomena dunia sekitarnya dan gagasan tentang kemungkinan tindakan terhadapnya. Dalam pemrograman, paradigma biasanya dipahami sebagai generalisasi tentang bagaimana kerja suatu program harus diatur.

Antara lain ada paradigma pemrograman seperti direktif (struktural), berorientasi objek dan deklaratif (fungsional-logis). Banyak bahasa mendukung berbagai paradigma pemrograman. Di sisi lain, ada bahasa yang hanya berfokus pada penerapan satu paradigma.

Pemrograman terstruktur

Beberapa perwakilan: Fortran, Pascal, C.

Program arahan menentukan bagaimana mencapai suatu hasil, menjelaskan langkah demi langkah. Oleh karena itu, pemrograman seperti ini cukup mudah untuk dipahami.

Dalam pemrograman terstruktur, urutan eksekusi perintah bergantung sepenuhnya pada data masukan.

Dalam pemrograman direktif, pada suatu waktu muncul konsep pelokalan bagian kode ke dalam apa yang disebut subrutin (fungsi, metode), dan kemudian dipanggil dari tempat berbeda di program utama. Saat dipanggil, subrutin dapat meneruskan data apa pun dalam bentuk argumen; dan subrutin, pada gilirannya, dapat mengembalikan hasilnya (yaitu data yang diperoleh selama eksekusinya) ke program utama.

Pemrograman Fungsional dan Logika

Perwakilan bahasa fungsional: List, Haskell.

Perwakilan bahasa logis: Prolog.

Program deklaratif menyatakan (menyatakan) apa yang ingin dicapai sebagai suatu tujuan. Perumusan masalah yang tepat sangatlah penting. Pemrogram tidak menentukan algoritma untuk menyelesaikannya.

Pemrograman fungsional didasarkan pada konsep matematika suatu fungsi yang tidak mengubah lingkungannya; Inilah perbedaan antara pemrograman fungsional dan fungsi dalam bahasa terstruktur. Program fungsi terdiri dari kumpulan definisi fungsi, yang pada gilirannya mewakili panggilan ke fungsi lain dan pernyataan yang mengontrol urutan panggilan. Setiap fungsi mengembalikan sejumlah nilai ke fungsi yang memanggilnya, yang evaluasinya kemudian dilanjutkan; proses ini diulangi sampai hasilnya tercapai.

Dalam pemrograman logika, program dinyatakan sebagai rumus logika matematika, dan solusi suatu masalah dicapai dengan menyimpulkan konsekuensi logis dari rumus tersebut.

Pemrograman berorientasi objek

Perwakilan bahasa berorientasi objek: C++, Java, Python.

Perhatian khusus diberikan pada data yang direpresentasikan dalam program sebagai objek. Objek berinteraksi satu sama lain menggunakan mekanisme penyampaian pesan. Tugas pemrogram adalah mengimplementasikan objek sedemikian rupa sehingga ketika berinteraksi dengannya, hasil yang diinginkan dapat diperoleh.

OOP dirancang untuk memecahkan masalah yang lebih kompleks dan banyak dibandingkan dengan pemrograman direktif.

OOP didasarkan pada konsep-konsep seperti pewarisan, polimorfisme, dan enkapsulasi.

Enkapsulasi mengasumsikan bahwa detail yang tidak penting dari suatu objek disembunyikan. Sebuah objek, menerima perintah apa pun, “tahu” bagaimana memprosesnya berdasarkan kelas miliknya.

Semua objek adalah turunan dari kelas, yang dalam hubungannya satu sama lain dapat bertindak sebagai induk-anak. Kelas anak mewarisi properti induknya. Dalam kasus ketika pewarisan 100% tidak diperlukan, apa yang disebut polimorfisme akan membantu, yang melibatkan penggantian metode kelas induk di kelas anak.

Paradigma pemrograman adalah sekumpulan ide dan konsep yang menentukan gaya penulisan program.

Paradigma imperatif menggambarkan proses komputasi dalam bentuk instruksi yang mengubah keadaan program. Program imperatif sangat mirip dengan perintah imperatif dalam bahasa alami, yaitu serangkaian perintah yang harus dijalankan oleh komputer. Berdasarkan model otomat terbatas Turing-Post.

Bahasa penting pertama adalah kode mesin - bahasa pemrograman asli komputer. Dalam bahasa-bahasa ini, instruksinya sangat sederhana, sehingga mengurangi beban pada komputer, namun menyulitkan penulisan program besar. Pada tahun 1954, bahasa pemrograman “manusia” pertama muncul - FORTRAN, kemudian ALGOL, COBOL, BASIC, Pascal, C.

Salah satu ciri khas pemrograman imperatif adalah adanya variabel dengan operasi “penugasan destruktif”. Artinya, ada variabel A yang memiliki nilai X. Algoritme memerintahkan untuk menetapkan nilai Y ke variabel A pada langkah berikutnya. Nilai yang dimiliki A akan “dilupakan selamanya”.

Pemrograman imperatif paling cocok untuk mengimplementasikan subtugas kecil, yang mana kecepatan eksekusi pada komputer modern sangat penting. Selain itu, bekerja dengan perangkat eksternal biasanya digambarkan dalam bentuk pelaksanaan operasi yang berurutan (“membuka keran, menimba air”), yang menjadikan tugas-tugas tersebut sebagai kandidat ideal untuk implementasi yang sangat penting.

Pilihan kerangka paradigma imperatif untuk mengajarkan dasar-dasar pemrograman tampaknya tidak diragukan lagi. Ada beberapa alasan untuk ini:

· paradigma imperatif paling dekat dengan sifat manusia dan konsep intuitif suatu algoritma pada tahap awal perkembangan berpikir (ada pengalaman positif pendidikan perkembangan dengan unsur algoritmaisasi sudah ada di sekolah dasar);

· Pemrograman dalam kerangka paradigma imperatif efektif untuk berbagai tugas, banyak di antaranya termasuk dalam zona perkembangan proksimal siswa di kelas atas sekolah dasar;

· Paradigma imperatif paling dekat dengan sifat komputer, prinsip dasar pengoperasiannya, karena meskipun komputer modern rumit, pada tingkat perangkat keras masih dapat dianggap sebagai semacam robot (prosesor + memori + ...) dengan kumpulan status (isi) memori yang terbatas);

· pangsa produk perangkat lunak yang dibuat secara eksklusif dalam kerangka paradigma pemrograman deklaratif masih kecil; Biasanya, ketika memecahkan masalah, digunakan kombinasi paradigma, salah satunya adalah keharusan;

· Banyak pilihan sistem pemrograman dalam bentuk perangkat lunak independen dan dalam bentuk subsistem yang terintegrasi ke dalam sistem lain, memungkinkan pengembangan produk perangkat lunak dengan menggunakan paradigma imperatif;


· Berbagai macam pendidikan, referensi dan publikasi lainnya mengenai sistem pemrograman yang relevan dalam bentuk kertas dan elektronik di berbagai media dan di jaringan global.

Kerugian: dalam bentuknya yang murni, ia hanya memungkinkan pemecahan masalah yang sangat sederhana.

Pemrograman berbasis peristiwa adalah pemrograman yang menentukan reaksi program terhadap berbagai peristiwa (tindakan pengguna). PMS dapat dianggap sebagai “keturunan” dari paradigma imperatif. SUP memiliki 2 subkelas:

1. Pemrograman paralel mewakili suatu program sebagai serangkaian proses komunikasi yang dapat dijalankan secara paralel. Program semacam itu dapat dijalankan baik pada satu prosesor (eksekusi langkah-langkah setiap proses secara bergantian) atau pada beberapa prosesor.

Dalam sistem proses paralel, setiap proses memproses peristiwa. Peristiwa dapat bersifat umum untuk keseluruhan sistem atau individual untuk satu atau beberapa proses. Dalam istilah seperti itu, cukup mudah untuk mendeskripsikan, misalnya, elemen antarmuka pengguna grafis, atau pemodelan proses nyata apa pun (misalnya, pengendalian lalu lintas) - karena konsep suatu peristiwa wajar untuk tugas semacam itu.

2. Pemrograman berorientasi objek adalah teknologi pemrograman di mana suatu program dipandang sebagai sekumpulan objek dan interaksinya. Setiap objek program adalah turunan dari beberapa kelas; - kelas dapat mewarisi atribut dan metode kelas induknya, sambil menambahkan atribut dan metodenya sendiri. Hirarki kelas memungkinkan Anda memodelkan esensi masalah yang sedang dipecahkan pada beberapa tingkat detail dan kemudian menggunakan kelas yang sesuai dengan tingkat detail yang diperlukan untuk menyelesaikan subtugas tertentu.

Penting untuk menyoroti sifat-sifat dasar objek berikut:

1.) Karena satu objek dapat mempengaruhi objek lain hanya dengan mengirimkan pesan kepada objek tersebut, objek tersebut tidak dapat bekerja secara langsung dengan data “lawan bicara” itu sendiri, dan oleh karena itu, tidak dapat melanggar konsistensi internal objek tersebut. Properti ini (penyembunyian data) biasa disebut enkapsulasi.

2.) Karena objek berinteraksi hanya melalui pertukaran pesan, objek lawan bicara mungkin tidak mengetahui apa pun tentang implementasi penangan pesan pada mitranya. Interaksi terjadi semata-mata dalam bentuk pesan/peristiwa, yang cukup mudah untuk diikat ke domain. Properti ini (deskripsi interaksi hanya dalam domain) disebut abstraksi.

3.) Objek berinteraksi secara eksklusif dengan mengirimkan pesan satu sama lain. Oleh karena itu, jika dalam skenario interaksi objek mana pun Anda mengganti objek arbitrer dengan objek lain yang mampu memproses pesan yang sama, skenario tersebut juga dapat diterapkan. Properti ini (kemampuan untuk mengganti suatu objek dengan objek lain dengan struktur kelas serupa) disebut polimorfisme.

Banyak bahasa modern mendukung OOP, meskipun pada tingkat yang berbeda-beda: Bahasa yang murni berorientasi objek, seperti Smalltalk dan Ruby, dirancang untuk mendukung dan bahkan menerapkan gaya pengembangan berorientasi objek, dan tidak mendukung gaya pemrograman lain; - sebagian besar bahasa berorientasi objek, seperti Java, C++ dan Python, dirancang terutama untuk mendukung OOP, namun memungkinkan penggunaan elemen pemrograman prosedural; - Secara historis, bahasa prosedural, misalnya Perl dan Fortran 2002, telah disempurnakan dan dukungan untuk beberapa elemen OOP telah ditambahkan.

Paradigma pemrograman deklaratif mendefinisikan proses komputasi dengan mendeskripsikan logika komputasi itu sendiri, bukan logika kontrol program.

Pemrograman deklaratif adalah kebalikan dari pemrograman imperatif; yang pertama menjelaskan apa yang perlu dilakukan, dan yang kedua menjelaskan dengan tepat bagaimana melakukannya.

Jenis pemrograman deklaratif yang paling penting adalah pemrograman fungsional dan logis (atau relasional).

1. Pemrograman fungsional merupakan salah satu alternatif dari pendekatan imperatif. Hal ini didasarkan pada kalkulus lambda Gereja. Dalam pemrograman imperatif, algoritma adalah deskripsi operasi yang dijalankan secara berurutan. Ada konsep "langkah eksekusi saat ini" (yaitu waktu), dan "keadaan saat ini" yang berubah seiring waktu.

Tidak ada konsep waktu dalam pemrograman fungsional. Program adalah ekspresi; eksekusi program terdiri dari evaluasi ekspresi ini.

Karena urutan evaluasi subekspresi tidak menjadi masalah, pemrograman fungsional dapat diimplementasikan secara alami pada platform yang mendukung paralelisme.

Pemrograman fungsional, seperti model pemrograman "non-imperatif" lainnya, biasanya digunakan untuk memecahkan masalah yang sulit dirumuskan dalam operasi sekuensial. Hampir semua tugas yang berkaitan dengan kecerdasan buatan termasuk dalam kategori ini. Diantaranya, perlu diperhatikan tugas pengenalan gambar, komunikasi dengan pengguna dalam bahasa alami, implementasi sistem pakar, pembuktian teorema otomatis, dan perhitungan simbolik. Tugas-tugas ini jauh dari pemrograman aplikasi tradisional, sehingga tidak banyak mendapat perhatian dalam kurikulum ilmu komputer.

Pemrograman logika

Dalam pemrograman fungsional, program adalah ekspresi, dan pelaksanaannya terdiri dari penghitungan nilainya. Dalam pemrograman logika, program adalah sebuah teori (dijelaskan dalam bahasa yang cukup terbatas) dan sebuah pernyataan yang perlu dibuktikan. Bukti dari pernyataan ini akan berupa eksekusi program.

Pemrograman logika dan bahasa Prolog muncul dari penelitian di bidang analisis bahasa alami. Selanjutnya, ditemukan bahwa pemrograman logika sama efektifnya dalam mengimplementasikan tugas-tugas kecerdasan buatan lainnya.

Pemrograman logika memungkinkan implementasi paralel alami.

Ternyata paradigma-paradigma yang sebelumnya muncul dengan keringat dan darah melalui gerombolan penganut metode tradisional, lambat laun terlupakan. Paradigma ini muncul pada awal mula pemrograman dan mengapa mereka muncul, keuntungan apa yang mereka berikan dan mengapa mereka masih digunakan masih berguna untuk diketahui oleh pengembang mana pun.

OKE. Pendahuluannya sangat menyenangkan, tetapi Anda tetap tidak membacanya, jadi jika ada yang tertarik, selamat datang di potongannya!

Pemrograman imperatif



Secara historis, sebagian besar teknologi komputer yang kami program memiliki status dan diprogram berdasarkan instruksi, sehingga bahasa pemrograman pertama pada dasarnya bersifat keharusan, yaitu. tidak mendukung paradigma apa pun selain paradigma imperatif.

Ini termasuk kode mesin, bahasa rakitan, dan bahasa tingkat tinggi awal seperti Fortran.

Poin-poin penting:

Dalam paradigma ini, komputasi digambarkan dalam bentuk instruksi yang mengubah keadaan program selangkah demi selangkah.

Dalam bahasa tingkat rendah (seperti bahasa assembly), status dapat berupa memori, register, dan flag, dan instruksi dapat berupa instruksi yang didukung oleh prosesor target.

Pada tingkat yang lebih tinggi (seperti C), keadaan hanyalah memori; instruksi bisa menjadi lebih kompleks dan menyebabkan memori dialokasikan dan tidak dialokasikan selama operasinya.

Pada level yang sangat tinggi (seperti Python, jika Anda memprogramnya secara imperatif), status dibatasi hanya pada variabel, dan perintah dapat berupa operasi kompleks yang memerlukan ratusan baris dalam bahasa assembly.

Konsep dasar:

- Instruksi
- Negara

Konsep yang dihasilkan:

- Penugasan
- Transisi
- Penyimpanan
- Indeks

Sebagai yang utama:
- Bahasa perakitan
- Fortran
-Algol
-Cobol
-Pascal
- C
- C++
-Ada
Sebagai pembantu:
- Piton
- Rubi
- Jawa
- C#
-PHP
- Haskell (melalui monad)

Perlu dicatat bahwa sebagian besar bahasa modern mendukung pemrograman imperatif sampai tingkat tertentu. Bahkan bahasa fungsional murni Haskell dapat ditulis secara imperatif.

Pemrograman terstruktur



Pemrograman terstruktur adalah paradigma pemrograman (juga biasa digunakan sebagai metodologi pengembangan), yang merupakan langkah besar pertama dalam pengembangan pemrograman.

Pendiri pemrograman terstruktur adalah orang-orang terkenal seperti E. Dijkstra dan N. Wirth.

Bahasa pionir dalam paradigma ini adalah Fortran, Algol dan B, kemudian digantikan oleh Pascal dan C.

Poin-poin penting:

Paradigma ini memperkenalkan konsep-konsep baru yang menggabungkan pola-pola yang umum digunakan untuk menulis kode imperatif.

Dalam pemrograman terstruktur, kami masih beroperasi dengan status dan instruksi, tetapi konsep instruksi gabungan (blok), instruksi cabang dan loop diperkenalkan.

Dengan perubahan sederhana ini, pernyataan goto dapat dihilangkan dalam banyak kasus, sehingga menyederhanakan kode Anda.

Terkadang goto membuat kode lebih mudah dibaca, itulah sebabnya kode ini masih digunakan secara luas, terlepas dari semua klaim dari lawan-lawannya.

Konsep dasar:

- Memblokir
- Siklus
- Bercabang

Bahasa yang mendukung paradigma ini:

Sebagai yang utama:
- C
-Pascal
- Dasar
Sebagai pembantu:
- C#
- Jawa
- Piton
- Rubi
- JavaScript

Didukung sebagian:
- Beberapa perakit makro (melalui makro)

Sekali lagi, sebagian besar bahasa modern mendukung paradigma struktural.

Pemrograman prosedural



Sekali lagi, meningkatnya kompleksitas perangkat lunak memaksa pemrogram mencari cara lain untuk menjelaskan perhitungan.

Sebenarnya, konsep tambahan sekali lagi diperkenalkan yang memungkinkan kita melihat pemrograman dengan cara baru.

Konsep kali ini adalah prosedur.

Akibatnya, metodologi baru untuk menulis program muncul, yang diterima hingga hari ini - masalah asli dipecah menjadi masalah yang lebih kecil (menggunakan prosedur) dan ini terjadi sampai solusi untuk semua prosedur tertentu menjadi sepele.

Poin-poin penting:

Prosedur adalah bagian kode independen yang dapat dieksekusi sebagai satu instruksi.

Dalam pemrograman modern, suatu prosedur dapat memiliki beberapa titik keluar (kembali dalam bahasa mirip C), beberapa titik masuk (menggunakan hasil dalam Python atau variabel lokal statis dalam C++), memiliki argumen, mengembalikan nilai sebagai hasil eksekusinya, menjadi kelebihan beban dalam jumlah, atau jenis parameter dan banyak lagi.

Konsep dasar:

- Prosedur

Konsep yang dihasilkan:

- Tantangan
- Argumen
- Kembali
- Pengulangan
- Kelebihan muatan

Bahasa yang mendukung paradigma ini:

Sebagai yang utama:
- C
- C++
-Pascal
- Objek Pascal
Sebagai pembantu:
- C#
- Jawa
- Rubi
- Piton
- JavaScript

Didukung sebagian:
- Dasar Awal

Perlu dicatat bahwa beberapa titik masuk dari semua bahasa ini hanya didukung di Python.

Pemrograman modular



Sekali lagi meningkatnya kompleksitas program memaksa pengembang untuk membagikan kode mereka. Kali ini prosedurnya tidak cukup dan kali ini konsep baru diperkenalkan - sebuah modul.

Ke depan, saya akan mengatakan bahwa modul juga ternyata tidak mampu menampung kompleksitas perangkat lunak yang semakin meningkat dengan kecepatan yang luar biasa, dan selanjutnya paket (ini juga pemrograman modular), kelas (ini sudah OOP), dan templat (pemrograman umum ) muncul.

Sebuah program yang dijelaskan dalam gaya pemrograman modular adalah sekumpulan modul. Apa yang ada di dalamnya, kelas, kode imperatif, atau fungsi murni, tidak masalah.

Berkat modul, untuk pertama kalinya dalam pemrograman, enkapsulasi serius muncul - dimungkinkan untuk menggunakan entitas apa pun di dalam modul, tetapi tidak menunjukkannya ke dunia luar.

Poin-poin penting:

Modul adalah entitas bernama terpisah dari suatu program yang menggabungkan unit program lain yang memiliki fungsi serupa.

Misalnya, file List.mod menyertakan kelas List
dan fungsi untuk bekerja dengannya - sebuah modul.

Folder Geometri yang berisi modul Bentuk, Persegi Panjang, dan Segitiga juga merupakan modul, meskipun beberapa bahasa memisahkan konsep modul dan paket (dalam bahasa tersebut paket adalah kumpulan modul dan/atau kumpulan lainnya paket).

Modul dapat diimpor (dihubungkan) untuk menggunakan entitas yang dideklarasikan di dalamnya.

Konsep dasar:

- Modul
- Impor

Konsep yang dihasilkan:

- Kantong plastik
- Enkapsulasi

Bahasa yang mendukung paradigma ini:

Sebagai yang utama:
- Haskell
-Pascal
- Piton
Sebagai pembantu:
- Jawa
- C#
- Skrip Tindakan 3

Didukung sebagian:
- C/C++

Beberapa bahasa memperkenalkan abstraksi terpisah untuk modul, sementara yang lain dapat menggunakan file header (dalam C/C++), namespace, kelas statis, dan/atau pustaka tautan dinamis untuk mengimplementasikan modul.

Alih-alih sebuah kesimpulan

Pada artikel ini, saya tidak menjelaskan pemrograman berorientasi objek, generik, dan fungsional yang sekarang populer. Hanya karena saya memiliki pendapat sendiri yang agak radikal mengenai masalah ini dan saya tidak ingin memulai holivar. Setidaknya untuk sekarang. Jika topik tersebut terbukti bermanfaat bagi masyarakat, saya berencana untuk menulis beberapa artikel yang menguraikan dasar-dasar masing-masing paradigma tersebut secara rinci.

Juga, saya tidak menulis apa pun tentang paradigma eksotik, seperti pemrograman berorientasi automata, aplikatif, aspek/agen/komponen. Saya tidak ingin membuat artikel ini terlalu besar, dan sekali lagi, jika topiknya diminati, saya akan menulis tentang paradigma ini, mungkin lebih detail dan dengan contoh kode.

(DASAR-DASAR ALGORITMISASI DAN PEMROGRAMAN)
  • Paradigma dan teknologi pemrograman
    Tujuan Bab 1. Mempelajari konsep “paradigma pemrograman”, “teknologi pemrograman”. 2. Mendapatkan pemahaman umum tentang teknologi pengembangan perangkat lunak modern. 3. Mempelajari tahapan pembuatan program struktural. 4. Mengenal model siklus hidup pengembangan perangkat lunak...
  • Paradigma pemrograman SE
    SWEBOK mencakup sejumlah paradigma pemrograman Lihat: Lavrishcheva E. M. Paradigma pemrograman tipe perakitan dalam rekayasa perangkat lunak // UKRProg-2014. No.2-3. hal.121-133. . Bootcamp pemrogramannya meliputi yang berikut: pemrograman prosedural(kursus CS1011 “Dasar-dasar pemrograman”),...
    (REKAYASA PERANGKAT LUNAK DAN TEKNOLOGI UNTUK PEMROGRAMAN SISTEM KOMPLEKS)
  • PARADIGMA PEMROGRAMAN
    PEMROGRAMAN MODULAR. KONSEP DASAR Salah satu masalah utama pemrograman modern adalah penggunaan kembali modul dan komponen (KPI). Itu bisa berupa program, subrutin, algoritma, spesifikasi, dll., Cocok untuk digunakan dalam pengembangan perangkat lunak baru yang lebih kompleks....
    (REKAYASA PERANGKAT LUNAK. PARADIGMA, TEKNOLOGI DAN ALAT KASUS)
  • Paradigma prosedural
    Paradigma prosedural secara kronologis adalah yang pertama dan berlaku sejak lama. Saat ini, secara bertahap digantikan oleh paradigma berorientasi objek, meskipun masih menempati sekitar setengah dari pasar pengembangan perangkat lunak. Ini diterapkan di semua tingkat pengembangan perangkat lunak...
    (ALGORITMIZASI DAN PEMROGRAMAN)
  • Memori deklaratif dan prosedural
    Cara independen lain dalam pengorganisasian fungsional memori, tidak bergantung pada yang lain, adalah pembagiannya menjadi deklaratif Dan prosedural. Kedua metode pengorganisasian memori ini memiliki dasar fungsional yang dapat dipahami sepenuhnya. Suatu bentuk memori deklaratif dirancang untuk mendukung mental...
    (Psikologi dan pedagogi)
  • Paradigma pemrograman umum yang muncul pada awal era pemrograman komputer, termasuk paradigma pemrograman terapan, teoritis dan fungsional, adalah yang paling stabil.

    Pemrograman terapan tunduk pada orientasi masalah, yang mencerminkan komputerisasi informasi dan proses komputasi pemrosesan numerik, yang dipelajari jauh sebelum munculnya komputer. Di sinilah hasil praktis yang nyata segera terlihat. Secara alami, di bidang seperti itu, pemrograman tidak jauh berbeda dengan pengkodean, biasanya gaya operator dalam merepresentasikan tindakan sudah cukup untuk itu. Dalam praktik pemrograman terapan, merupakan kebiasaan untuk mempercayai templat dan pustaka prosedur yang telah terbukti dan menghindari eksperimen yang berisiko. Keakuratan dan stabilitas perhitungan ilmiah sangat dihargai. Bahasa Fortran, seorang veteran pemrograman aplikasi, secara bertahap mulai menyerah pada Pascal, C, dan pada superkomputer ke bahasa pemrograman paralel seperti Sisal.

    Pemrograman teoretis menganut orientasi publikasi yang bertujuan untuk membandingkan hasil eksperimen ilmiah di bidang pemrograman dan ilmu komputer. Pemrograman mencoba untuk mengekspresikan model formalnya, untuk menunjukkan signifikansi dan sifat fundamentalnya. Model-model ini mewarisi fitur-fitur utama dari konsep matematika terkait dan memantapkan dirinya sebagai pendekatan algoritmik dalam ilmu komputer. Keinginan untuk membuktikan konstruksi dan penilaian efektivitas, masuk akal, kebenaran, kebenaran dan hubungan formal lainnya dalam diagram dan teks program menjadi dasar untuk pemrograman terstruktur dan metode lain untuk mencapai keandalan dalam proses pengembangan program, misalnya, pemrograman yang kompeten . Subset standar Algol dan Pascal, yang berfungsi sebagai bahan kerja untuk teori pemrograman, digantikan oleh bahasa aplikatif yang lebih nyaman untuk eksperimen, seperti ML, Miranda, Scheme, Haskell, dan lain-lain. Kini mereka bergabung dengan inovasi dalam C dan Java.

    Pemrograman fungsional dibentuk sebagai penghormatan terhadap orientasi matematika dalam penelitian dan pengembangan kecerdasan buatan serta pengembangan cakrawala baru dalam ilmu komputer. Pendekatan abstrak terhadap penyajian informasi, gaya konstruksi fungsi yang singkat dan universal, kejelasan lingkungan pelaksanaan untuk berbagai kategori fungsi, kebebasan konstruksi rekursif, kepercayaan pada intuisi ahli matematika dan peneliti, penghindaran beban prematur memecahkan masalah alokasi memori yang tidak berprinsip, penolakan terhadap pembatasan yang tidak masuk akal pada ruang lingkup definisi - - semua ini dihubungkan oleh John McCarthy dengan gagasan bahasa Lisp. Perhatian dan validitas metodologis dari implementasi Lisp pertama memungkinkan untuk dengan cepat mengumpulkan pengalaman dalam memecahkan masalah baru dan mempersiapkannya untuk pemrograman terapan dan teoritis. Saat ini, terdapat ratusan bahasa pemrograman fungsional yang berfokus pada berbagai kelas tugas dan jenis sarana teknis.

    Paradigma pemrograman utama telah berkembang seiring dengan meningkatnya kompleksitas masalah yang dipecahkan. Ada stratifikasi alat dan metode pemrograman tergantung pada kedalaman dan keumuman penjabaran rincian teknis organisasi proses pemrosesan informasi komputer. Berbagai gaya pemrograman telah muncul, yang paling matang adalah pemrograman paralel berorientasi mesin, sistem, logis, transformasional, dan berkinerja tinggi.

    Pemrograman berorientasi mesin dicirikan oleh pendekatan perangkat keras untuk mengatur pengoperasian komputer, yang bertujuan untuk mengakses kemampuan perangkat keras apa pun. Fokusnya adalah pada konfigurasi perangkat keras, status memori, perintah, transfer kontrol, urutan kejadian, pengecualian dan kejutan, waktu respons perangkat, dan keberhasilan respons. Bahasa rakitan telah dibayangi selama beberapa waktu sebagai media visual pilihan oleh Pascal dan C, bahkan dalam pemrograman mikro, namun perbaikan antarmuka pengguna mungkin mendapatkan kembali posisinya.

    Pemrograman sistem telah berkembang sejak lama di bawah tekanan layanan dan pekerjaan khusus. Pendekatan manufaktur yang melekat dalam pekerjaan tersebut bergantung pada preferensi terhadap proses yang dapat direproduksi dan program stabil yang dirancang untuk penggunaan berulang. Untuk program semacam itu, skema pemrosesan kompilasi, analisis properti statis, pengoptimalan dan kontrol otomatis dapat dibenarkan. Area ini didominasi oleh gaya pemrograman imperatif-prosedural, yang merupakan generalisasi langsung dari gaya operator pemrograman terapan. Hal ini memungkinkan untuk beberapa standardisasi dan pemrograman modular, tetapi ia memperoleh struktur, spesifikasi, metode pengujian, alat integrasi program yang agak rumit, dll. Persyaratan ketat untuk efisiensi dan keandalan dipenuhi dengan pengembangan alat profesional yang menggunakan heuristik semantik asosiatif yang kompleks bersama dengan metode desain dan pembuatan program yang digerakkan secara sintaksis. Potensi yang tidak dapat disangkal dari alat-alat tersebut dalam praktiknya dibatasi oleh kompleksitas pengembangan - sehingga timbul persyaratan kualifikasi.

    Pemrograman berkinerja tinggi ditujukan untuk mencapai kinerja semaksimal mungkin ketika memecahkan masalah-masalah penting. Cadangan alami kinerja komputer adalah proses paralel. Pengorganisasian mereka memerlukan pertimbangan rinci tentang hubungan waktu dan gaya pengelolaan tindakan yang non-imperatif. Superkomputer yang mendukung komputasi kinerja tinggi memerlukan teknik pemrograman sistem khusus. Pendekatan jaringan grafik untuk merepresentasikan sistem dan proses untuk arsitektur paralel telah diekspresikan dalam bahasa pemrograman paralel khusus dan superkompiler, yang diadaptasi untuk memetakan hierarki abstrak proses tingkat tugas ke dalam struktur spasial spesifik prosesor peralatan nyata.

    Pemrograman logika muncul sebagai penyederhanaan pemrograman fungsional bagi ahli matematika dan ahli bahasa yang memecahkan masalah pemrosesan simbolik. Yang paling menarik adalah kemungkinan menggunakan nondeterminisme sebagai landasan konseptual, yang membebaskan kita dari pemesanan prematur saat memprogram pemrosesan rumus. Gaya produksi menghasilkan proses dengan pengembalian cukup alami untuk pendekatan linguistik untuk memperjelas pengetahuan yang diformalkan oleh para ahli dan mengurangi hambatan awal.

    Pemrograman transformasional secara metodologis menggabungkan teknik optimasi program, generasi makro, dan komputasi parsial. Konsep sentral dalam bidang ini adalah kesetaraan informasi. Hal ini diwujudkan dalam menentukan transformasi program dan proses, dalam mencari kriteria penerapan transformasi, dalam memilih strategi untuk penggunaannya. Perhitungan yang campur aduk, tindakan yang ditangguhkan, pemrograman yang lambat, proses yang tertunda, dll. digunakan sebagai metode untuk meningkatkan efisiensi pemrosesan informasi dalam kondisi tambahan tertentu yang diidentifikasi.

    Pendekatan pemrograman ekstensif merupakan respons alami terhadap peningkatan radikal dalam kinerja perangkat keras dan jaringan komputer. Terjadi peralihan alat komputasi dari kelas alat teknis ke kelas peralatan rumah tangga. Landasan telah muncul untuk memperbarui pendekatan terhadap pemrograman, serta kemungkinan merehabilitasi ide-ide lama yang kurang berkembang karena rendahnya teknologi dan kinerja komputer. Sangat menarik untuk membentuk pendekatan penelitian, evolusioner, kognitif dan adaptasi terhadap pemrograman yang menciptakan prospek pengembangan rasional sumber daya informasi nyata dan potensi komputer.

    Pendekatan penelitian dengan gaya permainan edukasi pemrograman profesional, edukatif dan amatir dapat memberikan dorongan untuk mencari kecerdikan dalam meningkatkan teknologi pemrograman yang tidak mampu mengatasi fenomena krisis pada basis elemen sebelumnya. Pendekatan evolusioner dengan penyempurnaan program gaya mobile cukup jelas terlihat dalam konsep pemrograman berorientasi objek, yang secara bertahap berkembang menjadi pemrograman berorientasi subjek. Menggunakan kembali definisi dan mewarisi properti objek dapat memperpanjang siklus hidup lingkungan informasi yang di-debug, meningkatkan keandalan pengoperasian, dan kemudahan penggunaan.

    Pendekatan kognitif dengan gaya pengembangan antarmuka visual sistem terbuka yang dapat dioperasikan dan penggunaan alat audio-video baru dan perangkat non-standar membuka cara untuk meningkatkan persepsi informasi yang kompleks dan menyederhanakan pemrosesan yang memadai.

    Pendekatan adaptif dengan gaya ergonomis dari desain individual sistem informasi yang dipersonalisasi memberikan kesempatan kepada ilmuwan komputer untuk memprogram, mengatur, dan mendukung proses teknologi real-time yang sensitif terhadap faktor manusia secara kompeten. Arah perkembangan paradigma pemrograman mencerminkan perubahan lingkaran masyarakat yang tertarik pada pengembangan dan penerapan sistem informasi. Banyak konsep penting untuk praktik pemrograman, seperti peristiwa, pengecualian dan kesalahan, potensi, hierarki dan ortogonalitas konstruksi, ekstrapolasi dan titik pertumbuhan program, pengukuran kualitas, dll. tidak mencapai tingkat abstraksi dan formalisasi yang memadai. Hal ini memungkinkan kami untuk memprediksi perkembangan paradigma pemrograman dan memilih materi pendidikan untuk masa depan pemrograman komponen. Jika cara dan metode tradisional untuk memilih komponen yang dapat digunakan kembali tunduk pada kriteria modularitas, yang dipahami sebagai pilihan optimal kopling minimal dengan fungsionalitas maksimum, maka basis elemen modern memungkinkan pengoperasian unit multi-kontak yang melakukan operasi sederhana. Tapi kita bisa mengenal semua jenis dan paradigma pemrograman ini bahkan dengan menggunakan Wikipedia. Saat ini, terdapat perkembangan pemrograman yang sangat luas ke berbagai arah.

    Pilihan Editor
    , Afghanistan, Tajikistan, Kyrgyzstan, Kazakhstan, Turkmenistan, Rusia, Turki, Cina, dll. Distribusi...

    Georgia adalah rumah bagi orang-orang yang ramah dan bersahabat yang akan selalu membantu. Sesampainya di negara yang cerah ini, Anda tidak perlu khawatir akan...

    Rating: / 0 Detail Dilihat: 3084 Paradigma Pemrograman Apa yang dimaksud dengan paradigma secara umum? Bisa dibilang ini adalah...

    Bahasa Armenia () adalah bahasa Indo-Eropa yang biasanya diklasifikasikan sebagai kelompok tersendiri, lebih jarang digabungkan dengan bahasa Yunani dan Frigia....
    GADES Salah satu dari tiga putra Cronus, saudara laki-laki penguasa langit Zeus dan penguasa lautan Poseidon, juga disebut Pluto (“kekayaan”, yaitu....
    Analisis indikator kraniometri (yaitu yang berkaitan dengan pengukuran tengkorak) manusia modern menunjukkan bahwa semua makhluk hidup...
    Saya berkunjung dan melihat dengan mata kepala sendiri alfabet gipsi “pertama di dunia” dari Ukraina. Saya pikir tempat pertama dalam daftar buku favorit saya...
    Setiap orang pasti pernah mengalami perasaan bersalah setidaknya sekali dalam hidupnya. Alasannya bisa bermacam-macam. Itu semua tergantung secara spesifik pada...
    Saat bermain di tepi saluran Sungai Tunguska, ia menemukan kotak korek api berisi stearin, di dalamnya ada selembar kertas, digelapkan...