Hari ini kita akan menyentuh tentang pengaturcaraan berfungsi. Secara lebih khusus, kita akan melihat perbezaan antara pengaturcaraan deklaratif dan imperatif.

Mula-mula, mari kita semak syarat-syaratnya dengan cepat. Kemudian kami akan membandingkan gaya pengaturcaraan ini dan melihat cara ia muncul di Jawa dan sama ada bahasa itu menyokong kewujudan bersama yang gembira.

Pengaturcaraan fungsional ialah paradigma di mana fungsi difahami sebagai fungsi matematik, bukan sebagai subrutin, seperti dalam pengaturcaraan prosedur . Maksudnya, dalam kedua-dua paradigma ini mentafsir perkataan "fungsi" secara berbeza. Ingat ini dan jangan mengelirukan mereka. Java tidak membenarkan anda keliru, kerana subprogram dirujuk sebagai "kaedah", manakala fungsi merujuk kepada fungsi matematik (juga: fungsi lambda atau rujukan kaedah).

Dalam amalan, dalam pengaturcaraan prosedur, fungsi bergantung bukan sahaja pada pembolehubah input, tetapi juga pada faktor luaran (seperti pembolehubah lain di luar fungsi atau keadaan sistem). Ini bermakna memanggil fungsi yang sama dengan hujah yang sama tetapi dalam konteks yang berbeza mungkin menghasilkan hasil yang berbeza. Dalam pengaturcaraan berfungsi, apabila fungsi dipanggil dengan hujah yang sama, ia sentiasa menghasilkan hasil yang sama, kerana fungsi hanya bergantung pada data input.

Kebaikan pengaturcaraan berfungsi

  • Kebolehpercayaan kod yang dipertingkatkan
  • Ujian unit yang mudah
  • Peluang untuk pengoptimuman kod semasa penyusunan
  • Peluang untuk konkurensi

Keburukan pengaturcaraan berfungsi

Kelemahan pengaturcaraan fungsional berpunca daripada semua ciri yang sama ini:

  • Tiada penyata tugasan. Sebaliknya, nilai baharu disimpan dalam pembolehubah baharu, membawa kepada keperluan untuk sentiasa memperuntukkan dan melepaskan memori secara automatik. Akibatnya, kutipan sampah yang sangat cekap adalah bahagian penting bagi mana-mana sistem yang melaksanakan program berfungsi.

  • Penilaian tidak ketat bermakna susunan panggilan fungsi tidak dapat diramalkan, yang mewujudkan masalah I/O apabila susunan operasi adalah penting.

Itu menyimpulkan semakan pantas kami tentang pengaturcaraan berfungsi. Sekarang mari kita beralih kepada gaya pengaturcaraan.

Pengaturcaraan imperatif ialah paradigma pengaturcaraan yang dicirikan oleh ciri-ciri berikut:

  • Kod sumber program terdiri daripada arahan (penyataan).

  • Arahan mesti diikuti secara berurutan.

  • Data yang dijana dengan melaksanakan arahan sebelumnya boleh dibaca dari ingatan oleh arahan seterusnya.

  • Data yang diperoleh dengan melaksanakan arahan boleh ditulis ke ingatan.

Berikut ialah ciri utama bahasa imperatif:

  • Penggunaan pembolehubah boolean.
  • Penggunaan pengendali tugasan.
  • Penggunaan ungkapan majmuk.
  • Penggunaan subrutin.

Program imperatif adalah seperti perintah yang dinyatakan dalam mood imperatif dalam bahasa semula jadi. Dalam erti kata lain, program imperatif ialah urutan arahan.

Bahasa pengaturcaraan imperatif termasuk C dan C++.

Pengaturcaraan deklaratif ialah paradigma pengaturcaraan di mana penyelesaian kepada masalah ditentukan. Maksudnya, hasil akhirnya diterangkan, bukan cara untuk mencapainya. HTML ialah contoh bahasa perisytiharan. Apabila menulis teg dalam bahasa ini, kami tidak memikirkan bagaimana elemen akan dilukis pada halaman. Kami hanya menerangkan rupa halaman tersebut.

Satu lagi bahasa pengaturcaraan deklaratif ialah SQL.

Mari kita bandingkan dua gaya pengaturcaraan dengan mempertimbangkan contoh kehidupan sebenar: bagaimana kita menerangkan kepada seseorang cara untuk sampai ke tempat tertentu?

Bayangkan situasi ini: seorang lelaki datang kepada kami di jalan dan bertanya, "Bagaimana saya boleh pergi ke muzium?"

Dengan pendekatan yang penting, kami akan memberikannya algoritma cara untuk pergi ke sana dengan berjalan kaki:

  • pusing sini
  • berjalan 2 blok dalam satu garisan lurus
  • pusing ke kanan

Dengan pendekatan deklaratif, kami hanya akan memberikan alamat, dan kemudian orang itu akan sampai ke tempat yang betul sendiri.

Java kini merupakan bahasa pengaturcaraan berbilang paradigma . Multi-paradigma bermaksud bahasa itu menyokong beberapa paradigma.

Semasa evolusinya yang panjang, bahasa itu telah memperluaskan model berorientasikan objeknya supaya penggunanya mempunyai alat yang berbeza dan boleh memilih yang terbaik untuk tugas khusus mereka.

Akibatnya, Java kini menyokong kedua-dua pendekatan imperatif (seperti menulis kod untuk panggilan kaedah) dan pendekatan deklaratif (seperti anotasi yang tersedia semasa runtime).

Mari kita ringkaskan:

  • Terdapat pelbagai paradigma pengaturcaraan.

  • Terdapat pendekatan deklaratif dan imperatif.

  • Anda harus memilih yang paling sesuai untuk tugas yang sedang dijalankan.

  • Java ialah bahasa berbilang paradigma yang menyokong kedua-dua pendekatan.