Sabtu, 03 April 2010

Teknik Pemograman Terstruktur 2

Pemrograman terstruktur

From Wikipedia, the free encyclopedia Dari Wikipedia Bahasa Melayu, ensiklopedia bebas

Jump to: navigation , search Langsung ke: navigasi , cari
Structured programming can be seen as a subset or subdiscipline of imperative programming , one of the major programming paradigms . pemrograman terstruktur dapat dilihat sebagai sekumpulan atau subdiscipline dari pemrograman imperatif , salah satu mayor paradigma pemrograman . It is most famous for removing or reducing reliance on the GOTO statement . Hal ini paling terkenal untuk menghilangkan atau mengurangi ketergantungan pada GOTO pernyataan .
Historically, several different structuring techniques or methodologies have been developed for writing structured programs. Secara historis, beberapa teknik penataan yang berbeda atau metodologi yang telah dikembangkan untuk menulis program terstruktur. The most common are: Yang paling umum adalah:
  1. Edsger Dijkstra 's structured programming, where the logic of a program is a structure composed of similar sub-structures in a limited number of ways. Edsger Dijkstra 's pemrograman terstruktur, di mana logika dari sebuah program adalah sebuah struktur yang terdiri dari sub-struktur yang sama di sejumlah cara. This reduces understanding a program to understanding each structure on its own, and in relation to that containing it, a useful separation of concerns . Hal ini akan mengurangi pemahaman program untuk memahami setiap struktur sendiri, dan sehubungan dengan itu berisi itu, yang bermanfaat pemisahan keprihatinan .
  2. A view derived from Dijkstra's which also advocates splitting programs into sub-sections with a single point of entry, but is strongly opposed to the concept of a single point of exit. Sebuah tampilan berasal dari Dijkstra yang juga pendukung program pemisahan ke dalam sub-bagian dengan satu titik masuk, tetapi sangat menentang konsep satu titik keluar.
  3. Data Structured Programming or Jackson Structured Programming , which is based on aligning data structures with program structures. Data Structured Programming atau Pemrograman Terstruktur Jackson , yang didasarkan pada menyelaraskan struktur data dengan struktur program. This approach applied the fundamental structures proposed by Dijkstra, but as constructs that used the high-level structure of a program to be modeled on the underlying data structures being processed. Pendekatan ini menerapkan struktur dasar yang diusulkan oleh Dijkstra, tetapi sebagai konstruksi yang digunakan struktur tingkat tinggi program yang akan dimodelkan pada struktur data yang mendasari diproses. There are at least 3 major approaches to data structured program design proposed by Jean-Dominique Warnier , Michael A. Jackson , and Ken Orr . Setidaknya ada 3 pendekatan utama untuk data terstruktur merancang program yang diajukan oleh Jean-Dominique Warnier , Michael A. Jackson , dan Ken Orr .
The two latter meanings for the term "structured programming" are more common, and that is what this article will discuss. Kedua makna terakhir untuk pemrograman istilah "terstruktur" lebih umum, dan itulah yang artikel ini akan membahas. Years after Dijkstra (1969), object-oriented programming (OOP) was developed to handle very large or complex programs (see below: Object-oriented comparison ). Tahun setelah Dijkstra (1969), pemrograman berorientasi objek (OOP) telah dikembangkan untuk menangani program besar atau kompleks sangat (lihat di bawah: perbandingan berorientasi Objek ).

Contents Isi

[hide]

[ edit ] Low-level structure Programming [ sunting ]-tingkat struktur Rendah Pemrograman

At a low level, structured programs are often composed of simple, hierarchical program flow structures. Pada tingkat rendah, program terstruktur sering terdiri dari sederhana, struktur aliran program hirarkis. These are sequence, selection, and repetition: Ini adalah urutan, pemilihan, dan pengulangan:
  • "Sequence" refers to an ordered execution of statements. "Sequence" mengacu pada laporan memerintahkan eksekusi.
  • In "selection" one of a number of statements is executed depending on the state of the program. Dalam "pilihan" salah satu dari sejumlah laporan dijalankan, tergantung pada keadaan program. This is usually expressed with keywords such as if..then..else..endif , switch , or case . Hal ini biasanya dinyatakan dengan kata kunci seperti if..then..else..endif , switch , atau case .
  • In "repetition" a statement is executed until the program reaches a certain state or operations are applied to every element of a collection. Dalam "pengulangan" pernyataan program dijalankan sampai mencapai kondisi tertentu atau operasi yang diterapkan pada setiap elemen koleksi. This is usually expressed with keywords such as while , repeat , for or do..until . Hal ini biasanya dinyatakan dengan kata kunci seperti while , repeat , for atau do..until . Often it is recommended that each loop should only have one entry point (and in the original structural programming, also only one exit point), and a few languages enforce this. Seringkali dianjurkan bahwa setiap loop hanya harus memiliki satu titik masuk (dan dalam pemrograman struktural asli, juga hanya satu titik keluar), dan beberapa bahasa menegakkan ini.
A language is described as "block-structured" when it has a syntax for enclosing structures between bracketed keywords, such as an if-statement bracketed by if..fi as in ALGOL 68 , or a code section bracketed by BEGIN..END , as in PL/I . bahasa adalah digambarkan sebagai "blok-terstruktur" ketika ia memiliki sintaks untuk melampirkan struktur antara kata kunci yang diberi tanda kurung, seperti pernyataan-jika diberi tanda kurung oleh if..fi seperti pada ALGOL 68 , atau bagian kode diberi tanda kurung oleh BEGIN..END , seperti dalam PL / I . However, a language is described as "comb-structured" when it has a syntax for enclosing structures within an ordered series of keywords. Namun, bahasa digambarkan sebagai "sisir-terstruktur" ketika ia memiliki sintaks untuk melampirkan struktur dalam serangkaian perintah kata kunci. A "comb-structured" language has multiple structure keywords to define separate sections within a block, analogous to the multiple teeth or prongs in a comb separating sections of the comb. Suatu "sisir-terstruktur" struktur bahasa memiliki kata kunci ganda untuk menentukan bagian-bagian yang terpisah dalam blok, analog dengan beberapa gigi atau garpu di sisir memisahkan bagian-bagian dari sisir. For example, in Ada , a block is a 4-pronged comb with keywords DECLARE , BEGIN , EXCEPTION , END , and the if-statement in Ada is a 4-pronged comb with keywords IF , THEN , ELSE , END IF . Misalnya, dalam Ada , blok adalah cabang-sisir 4 dengan kata kunci DECLARE , BEGIN , EXCEPTION , END , dan laporan-kalau di Ada adalah cabang-sisir 4 dengan kata kunci IF , THEN , ELSE , END IF .

[ edit ] Design [ sunting ] Desain

Structured programming is often (but not always) associated with a "top-down" approach to design . pemrograman Structured sering (tetapi tidak selalu) berhubungan dengan top-down "pendekatan" untuk desain .

[ edit ] Structured programming languages [ sunting ] Bahasa pemrograman terstruktur

It is possible to do structured programming in any programming language, though it is preferable to use something like a procedural programming language . Hal ini dimungkinkan untuk melakukan pemrograman terstruktur dalam bahasa pemrograman, meskipun adalah lebih baik untuk menggunakan sesuatu seperti prosedural bahasa pemrograman . Since about 1970 when structured programming began to gain popularity as a technique, most new procedural programming languages have included features to encourage structured programming (and sometimes have left out features that would make unstructured programming easy). Sejak sekitar tahun 1970 ketika pemrograman terstruktur mulai mendapatkan popularitas sebagai suatu teknik, yang paling baru bahasa pemrograman prosedural telah menyertakan fitur untuk mendorong pemrograman terstruktur (dan kadang-kadang telah meninggalkan fitur-fitur yang akan membuat pemrograman terstruktur mudah). Some of the better known structured programming languages are ALGOL , Pascal , PL/I and Ada . Beberapa lebih dikenal bahasa pemrograman terstruktur adalah ALGOL , Pascal , PL / I dan Ada .

[ edit ] History [ sunting ] Sejarah

[ edit ] Theoretical foundation [ sunting ] Yayasan Teoritis

The structured program theorem provides the theoretical basis of structured programming. The program teorema terstruktur memberikan teori dasar pemrograman terstruktur. It states that three ways of combining programs—sequencing, selection, and iteration—are sufficient to express any computable function . Ini menyatakan bahwa tiga cara untuk menggabungkan program-sequencing, seleksi, dan iterasi-yang cukup untuk mengungkapkan suatu fungsi komputasi . This observation did not originate with the structured programming movement; these structures are sufficient to describe the instruction cycle of a central processing unit , as well as the operation of a Turing machine . Pengamatan ini tidak berasal dengan gerakan pemrograman terstruktur; struktur ini cukup untuk menggambarkan siklus instruksi dari unit pengolahan pusat , serta pengoperasian mesin Turing . Therefore a processor is always executing a "structured program" in this sense, even if the instructions it reads from memory are not part of a structured program. Oleh karena itu prosesor adalah selalu melaksanakan program "terstruktur" dalam pengertian ini, bahkan jika instruksi dibaca dari memori tidak bagian dari program terstruktur. However, authors usually credit the result to a 1966 paper by Böhm and Jacopini, possibly because Dijkstra cited this paper himself. Namun, penulis biasanya kredit hasilnya ke kertas 1966 oleh Bohm dan Jacopini, mungkin karena Dijkstra dikutip tulisan ini sendiri. The structured program theorem does not address how to write and analyze a usefully structured program. Teorema program terstruktur tidak alamat bagaimana menulis dan menganalisa program berguna terstruktur. These issues were addressed during the late 1960s and early 1970s, with major contributions by Dijkstra , Robert W. Floyd , Tony Hoare , and David Gries . Isu-isu yang dibahas pada akhir 1960-an dan awal 1970-an, dengan kontribusi utama oleh Dijkstra , Robert W. Floyd , Tony Hoare , dan David Gries .

[ edit ] Debate [ sunting ] Debat

PJ Plauger , an early adopter of structured programming, described his reaction to the structured program theorem: PJ Plauger , seorang adopter awal dari pemrograman terstruktur, menggambarkan reaksinya terhadap teorema program terstruktur:
Us converts waved this interesting bit of news under the noses of the unreconstructed assembly-language programmers who kept trotting forth twisty bits of logic and saying, 'I betcha can't structure this.' Kami mengkonversi melambai ini sedikit menarik dari berita di bawah hidung programer perakitan-bahasa unreconstructed yang terus berlari berkelok-kelok sebagainya bit logika dan berkata, 'Aku tidak bisa betcha struktur ini. " Neither the proof by Böhm and Jacopini nor our repeated successes at writing structured code brought them around one day sooner than they were ready to convince themselves. Baik bukti oleh Bohm dan Jacopini atau mengulangi kesuksesan kita dalam menulis kode terstruktur membawa mereka sekitar satu hari lebih cepat dari mereka sudah siap untuk meyakinkan diri mereka sendiri.
In 1967 a letter from Dijkstra appeared in Communications of the ACM with the heading "Goto statement considered harmful ." Pada tahun 1967 surat dari Dijkstra muncul di Komunikasi ACM dengan judul "pernyataan Goto dianggap berbahaya . " The letter, which cited the Böhm and Jacopini proof, called for the abolishment of unconstrained GOTO from high-level languages in the interest of improving code quality. Surat, yang mengutip Bohm dan bukti Jacopini, menyerukan penghapusan tak terbatas GOTO dari tingkat bahasa tinggi untuk kepentingan peningkatan kualitas kode. This letter is usually cited as the beginning of the structured programming debate. Surat ini biasanya disebut sebagai awal dari perdebatan pemrograman terstruktur.
Although, as Plauger mentioned, many programmers unfamiliar with the theorem doubted its claims, the more significant dispute in the ensuing years was whether structured programming could actually improve software's clarity, quality, and development time enough to justify training programmers in it. Meskipun, sebagai Plauger disebutkan, banyak programmer terbiasa dengan teorema ini meragukan klaim-klaimnya, perselisihan lebih signifikan di tahun-tahun berikutnya adalah apakah pemrograman terstruktur benar-benar bisa meningkatkan kejelasan perangkat lunak, kualitas, dan waktu pengembangan cukup untuk membenarkan programer pelatihan di dalamnya. Dijkstra claimed that limiting the number of structures would help to focus a programmer's thinking, and would simplify the task of ensuring the program's correctness by dividing analysis into manageable steps. Dijkstra menyatakan bahwa pembatasan jumlah struktur akan membantu untuk memusatkan pikiran programmer, dan akan memudahkan tugas memastikan kebenaran di dalam program dengan membagi analisis menjadi langkah-langkah dikelola. In his 1969 Notes on Structured Programming , Dijkstra wrote: Pada tahun 1969 ia Catatan tentang Pemrograman Terstruktur, Dijkstra menulis:
When we now take the position that it is not only the programmer's task to produce a correct program but also to demonstrate its correctness in a convincing manner, then the above remarks have a profound influence on the programmer's activity: the object he has to produce must be usefully structured. Ketika kita sekarang mengambil posisi bahwa bukan hanya programmer tugas untuk menghasilkan program yang benar tetapi juga untuk menunjukkan kebenaran dalam cara yang meyakinkan, maka pernyataan di atas memiliki pengaruh yang besar pada programmer kegiatan: objek dia harus memproduksi harus akan berguna terstruktur.
…In what follows it will become apparent that program correctness is not my only concern, program adaptability or manageability will be another… 1 ... Dalam apa yang berikut ini akan menjadi jelas bahwa ketepatan program ini tidak hanya keprihatinan saya, adaptasi program atau pengelolaan akan yang lain ... 1
Donald Knuth accepted the principle that programs must be written with provability in mind, but he disagreed (and still disagrees [ citation needed ] ) with abolishing the GOTO statement. Donald Knuth menerima prinsip bahwa program-program harus ditulis dengan provability dalam pikiran, tetapi ia tidak setuju (dan masih tidak setuju [ rujukan? ]) dengan menghapuskan pernyataan GOTO. In his 1974 paper, "Structured Programming with Goto Statements", he gave examples where he believed that a direct jump leads to clearer and more efficient code without sacrificing provability. Pada tahun 1974 makalahnya, "Pemrograman Terstruktur dengan Goto Laporan", dia memberi contoh di mana ia percaya bahwa lompatan langsung mengarah ke kode lebih jelas dan lebih efisien tanpa mengorbankan provability. Knuth proposed a looser structural constraint: It should be possible to draw a program's flow chart with all forward branches on the left, all backward branches on the right, and no branches crossing each other. Knuth mengusulkan kendala struktural looser: Harus mungkin untuk menggambar program diagram alur dengan seluruh cabang maju di sebelah kiri, mundur seluruh cabang-cabang di sebelah kanan, dan tidak ada cabang persimpangan satu sama lain. Many of those knowledgeable in compilers and graph theory have advocated allowing only reducible flow graphs. Banyak dari mereka yang berpengetahuan di compiler dan teori graph telah menganjurkan hanya mengizinkan grafik aliran direduksi.
Structured programming theorists gained a major ally in the 1970s after IBM researcher Harlan Mills applied his interpretation of structured programming theory to the development of an indexing system for the New York Times research file. teori pemrograman terstruktur memperoleh sekutu utama di tahun 1970-an setelah IBM peneliti Harlan Mills diterapkan penafsirannya tentang teori pemrograman terstruktur untuk pengembangan sistem pengindeksan untuk New York Times file penelitian. The project was a great engineering success, and managers at other companies cited it in support of adopting structured programming, although Dijkstra criticized the ways that Mills's interpretation differed from the published work. Proyek ini sukses besar teknik, dan manajer di perusahaan lain dikutip dalam mendukung penerapan pemrograman terstruktur, meskipun Dijkstra mengkritik cara-cara yang berbeda penafsiran Mills dari karya diterbitkan.
As late as 1987 it was still possible to raise the question of structured programming in a computer science journal. Pada akhir tahun 1987 masih mungkin untuk meningkatkan pertanyaan tentang pemrograman terstruktur dalam jurnal ilmu komputer. Frank Rubin did so in that year with a letter, "'GOTO considered harmful' considered harmful." Frank Rubin melakukannya di tahun itu dengan surat, "'GOTO dianggap' berbahaya dianggap berbahaya." Numerous objections followed, including a response from Dijkstra that sharply criticized both Rubin and the concessions other writers made when responding to him. Banyak keberatan diikuti, termasuk tanggapan dari Dijkstra yang tajam mengecam Rubin dan konsesi penulis lain yang dibuat ketika menanggapi kepadanya.

[ edit ] Outcome [ sunting ] Hasil

By the end of the 20th century nearly all computer scientists were convinced that it is useful to learn and apply the concepts of structured programming. Pada akhir abad ke-20 hampir semua ilmuwan komputer yakin bahwa itu berguna untuk belajar dan menerapkan konsep pemrograman terstruktur. High-level programming languages that originally lacked programming structures, such as FORTRAN , COBOL , and BASIC , now have them. bahasa pemrograman tingkat-tinggi yang semula tidak memiliki struktur pemrograman, seperti FORTRAN , COBOL , dan BASIC , sekarang memiliki mereka.

[ edit ] Common deviations [ sunting ] Umum penyimpangan

[ edit ] Exception handling [ sunting ] Perkecualian penanganan

Although there is almost never a reason to have multiple points of entry to a subprogram, multiple exits are often used to reflect that a subprogram may have no more work to do, or may have encountered circumstances that prevent it from continuing. Meskipun hampir tidak pernah ada alasan untuk memiliki beberapa titik masuk ke sebuah subprogram, keluar beberapa sering digunakan untuk mencerminkan bahwa Subprogram mungkin tidak memiliki lebih banyak pekerjaan yang harus dilakukan, atau mungkin mengalami keadaan yang mencegahnya dari melanjutkan.
A typical example of a simple procedure would be reading data from a file and processing it: Sebuah contoh khas dari prosedur sederhana akan membaca data dari file dan proses itu:
open file; membuka file;
while (reading not finished) { sedangkan (membaca tidak selesai) (
  read some data; membaca beberapa data;
  if (error) { if (error) (
    stop the subprogram and inform rest of the program about the error; menghentikan Subprogram dan menginformasikan sisa program tentang kesalahan;
  } )
} )
process read data; proses membaca data;
finish the subprogram; menyelesaikan subprogram;
The "stop and inform" may be achieved by throwing an exception, second return from the procedure, labelled loop break, or even a goto. The "berhenti dan memberi informasi" dapat dicapai dengan melemparkan pengecualian, kembali kedua dari prosedur, berlabel istirahat loop, atau bahkan sebuah goto. As the procedure has 2 exit points, it breaks the rules of Dijkstra's structured programming. Sebagai prosedur mempunyai 2 exit point, itu melanggar aturan pemrograman terstruktur Dijkstra. Coding it in accordance with single point of exit rule would be very cumbersome. Coding itu sesuai dengan aturan satu titik keluar akan sangat rumit. If there were more possible error conditions, with different cleanup rules, single exit point procedure would be extremely hard to read and understand, very likely even more so than an unstructured one with control handled by goto statements. Jika ada lebih kondisi kesalahan yang mungkin, dengan aturan pembersihan yang berbeda, prosedur keluar titik tunggal akan sangat sulit untuk membaca dan memahami, sangat mungkin bahkan lebih daripada satu terstruktur dengan kontrol ditangani oleh pernyataan goto.
Most languages have adopted the multiple points of exit form of structural programming. C allows multiple paths to a structure's exit (such as "continue", "break", and "return"), newer languages have also "labelled breaks" (similar to the former, but allowing breaking out of more than just the innermost loop) and exceptions. bahasa Sebagian besar telah mengadopsi banyak sudut keluar bentuk pemrograman struktural. C memungkinkan jalur ganda untuk struktur ini keluar sebuah (seperti "terus", "istirahat", dan "kembali"), bahasa baru juga "berlabel istirahat" (mirip dengan yang pertama, tetapi memungkinkan mematahkan lebih dari loop hanya terdalam) dan pengecualian.

[ edit ] State machines [ sunting ] Negara mesin

Some programs, particularly parsers and communications protocols , have a number of states that follow each other in a way that is not easily reduced to the basic structures. Beberapa program, khususnya parser dan protokol komunikasi , memiliki sejumlah negara yang saling mengikuti dengan cara yang tidak mudah direduksi menjadi struktur dasar. It is possible to structure these systems by making each state-change a separate subprogram and using a variable to indicate the active state (see trampoline ). Hal ini dimungkinkan untuk struktur sistem ini dengan membuat setiap negara bagian-perubahan Subprogram terpisah dan menggunakan variabel untuk menunjukkan keadaan aktif (lihat trampolin ). However, some programmers (including Knuth [ citation needed ] ) prefer to implement the state-changes with a jump to the new state. Namun, beberapa programmer (termasuk [Knuth rujukan? ]) lebih memilih untuk menerapkan negara-perubahan dengan melompat ke negara baru.

[ edit ] Object-oriented comparison [ sunting berorientasi objek perbandingan]

In the 1960s, language design was often based on textbook examples of programs, which were generally small (due to the size of a textbook); however, when programs became very large, the focus changed. Pada tahun 1960, desain bahasa sering didasarkan pada buku teks contoh program, yang umumnya kecil (karena ukuran buku teks), namun ketika program menjadi sangat besar, fokus berubah. In small programs, the most common statement is generally the assignment statement; however, in large programs (over 10,000 lines), the most common statement is typically the procedure-call to a subprogram . Dalam program kecil, pernyataan yang paling umum adalah laporan tugas umum, namun, dalam program-program yang besar (lebih dari 10.000 baris), maka pernyataan yang paling umum biasanya prosedur-panggilan ke subprogram . Ensuring parameters are correctly passed to the correct subprogram becomes a major issue. Memastikan parameter benar diteruskan ke subprogram yang benar menjadi masalah besar.
Many small programs can be handled by coding a hierarchy of structures; however, in large programs, the organization is more a network of structures, and insistence on hierarchical structuring for data and procedures can produce cumbersome code with large amounts of " tramp data ." Banyak program-program kecil yang dapat ditangani oleh pengkodean struktur hirarki, namun, dalam program-program besar, organisasi lebih dari struktur jaringan, dan penekanan pada struktur hirarki data dan prosedur dapat menghasilkan kode yang rumit dengan jumlah besar " tramp data . " For example, a text-display program that allows dynamically changing the font-size of the entire screen would be very cumbersome if coded by passing font-size data through a hierarchy. Sebagai contoh, sebuah program teks-display yang memungkinkan secara dinamis mengubah ukuran font-seluruh layar akan sangat rumit jika dikodekan dengan melewatkan data font-size melalui sebuah hirarki. Instead, a subsystem could be used to control the font data through a set of accessor functions that set or retrieve data from a common area controlled by that font-data subsystem. Sebaliknya, subsistem dapat digunakan untuk mengontrol data font melalui seperangkat fungsi accessor yang mengatur atau mengambil data dari area umum dikontrol oleh subsistem font-data. Databases are a common way around tramping. Database adalah cara umum sekitar tramping.
The FORTRAN language has used labelled COMMON-blocks to separate global program data into subsystems (no longer global) to allow program-wide, network-style access to data, such as font-size, but only by specifying the particular COMMON-block name. The FORTRAN bahasa telah menggunakan label UMUM-blok untuk memisahkan data program global menjadi subsistem (tidak lagi global) untuk memungkinkan program-lebar jaringan gaya akses, data, seperti font-size, tetapi hanya dengan menentukan nama-blok tertentu UMUM . Confusion could occur in FORTRAN by coding alias names and changing data-types when referencing the same labelled COMMON-block yet mapping alternate variables to overlay the same area of memory. Kebingungan dapat terjadi dalam FORTRAN oleh pengkodean nama alias dan mengubah data-jenis ketika referensi yang sama UMUM blok-label belum pemetaan variabel alternatif untuk overlay daerah yang sama dari memori. Regardless, the labelled-COMMON concept was very valuable in organizing massive software systems and led to the use of object-oriented programming to define subsystems of centralized data controlled by accessor functions. Apapun, konsep-UMUM berlabel sangat berharga dalam mengatur sistem perangkat lunak besar-besaran dan menyebabkan penggunaan pemrograman berorientasi obyek untuk mendefinisikan subsistem data terpusat dikendalikan oleh fungsi accessor. Changing data into other data-types was performed by explicitly converting, or casting, data from the original variables. Mengubah data ke dalam lain-tipe data dilakukan dengan mengkonversi secara eksplisit, atau casting, data dari variabel asli.
Global subprogram names were recognized as just as dangerous (or even more dangerous) than global variables or blank COMMON, and subsystems were limited to isolated groups of subprogram names, such as naming with unique prefixes or using Java package names. Global Subprogram nama-nama itu diakui sebagai sama berbahayanya (atau bahkan lebih berbahaya) dari variabel global atau UMUM kosong, dan subsistem terbatas pada kelompok-kelompok yang terisolasi Subprogram nama, seperti penamaan dengan awalan unik atau menggunakan Java nama paket.
Although structuring a program into a hierarchy might help to clarify some types of software, even for some special types of large programs, a small change, such as requesting a user-chosen new option (text font-color) could cause a massive ripple-effect with changing multiple subprograms to propagate the new data into the program's hierarchy. Meskipun struktur program menjadi sebuah hirarki dapat membantu untuk memperjelas beberapa jenis perangkat lunak, bahkan untuk beberapa jenis khusus program besar, perubahan kecil, seperti meminta pengguna-opsi baru yang dipilih (teks font-warna) dapat menyebabkan riak-besar efek dengan mengubah beberapa subprogram untuk menyebarkan data baru ke dalam hirarki program. The object-oriented approach is more flexible, by separating a program into a network of subsystems, with each controlling their own data, algorithms, or devices across the entire program, but only accessible by first specifying named access to the subsystem object-class, not just by accidentally coding a similar global variable name. Pendekatan berorientasi obyek lebih fleksibel, dengan memisahkan program ke dalam jaringan subsistem, dengan masing-masing mengontrol data mereka sendiri, algoritma, atau perangkat di seluruh program, tetapi hanya dapat diakses dengan terlebih dahulu menetapkan subsistem bernama akses ke objek-kelas, tidak hanya dengan sengaja coding nama variabel yang sama global. Rather than relying on a structured-programming hierarchy chart, object-oriented programming needs a call-reference index to trace which subsystems or classes are accessed from other locations. Daripada mengandalkan pada grafik hirarki-pemrograman terstruktur, pemrograman berorientasi objek membutuhkan indeks panggilan-referensi untuk menelusuri sub sistem atau kelas yang diakses dari lokasi lain.
Modern structured systems have tended away from deep hierarchies found in the 1970s and tend toward "event driven" architectures, where various procedural events are designed as relatively independent tasks. sistem modern terstruktur ini cenderung jauh dari hierarki dalam ditemukan di tahun 1970 dan cenderung ke arah "event driven" arsitektur, di mana berbagai peristiwa prosedural dirancang sebagai tugas yang relatif independen.
Structured programming, as a forerunner to object-oriented programming , noted some crucial issues, such as emphasizing the need for a single exit-point in some types of applications, as in a long-running program with a procedure that allocates memory and should deallocate that memory before exiting and returning to the calling procedure. Memory leaks that cause a program to consume vast amounts of memory could be traced to a failure to observe a single exit-point in a subprogram needing memory deallocation. pemrograman terstruktur, sebagai pendahulu untuk pemrograman berorientasi objek , mencatat beberapa isu penting, seperti menekankan kebutuhan untuk keluar-titik tunggal dalam beberapa jenis aplikasi, seperti dalam menjalankan program-panjang dengan prosedur yang mengalokasikan memori dan harus deallocate yang memori sebelum keluar dan kembali ke prosedur menelepon. kebocoran memori yang menyebabkan sebuah program untuk mengkonsumsi sejumlah besar memori bisa dilacak untuk sebuah kegagalan untuk mengamati keluar tunggal-titik dalam subprogram perlu dealokasi memori.
Similarly, structured programming, in warning of the rampant use of goto-statements, led to a recognition of top-down discipline in branching, typified by Ada 's GOTO that cannot branch to a statement-label inside another code block. Demikian pula, pemrograman terstruktur, dalam peringatan penggunaan merajalela dari goto-pernyataan, menyebabkan pengakuan disiplin top-down di percabangan, ditandai oleh Ada s ' GOTO yang tidak dapat belokan ke label-pernyataan lain di dalam blok kode. However, "GOTO WrapUp" became a balanced approach to handling a severe anomaly without losing control of the major exit-point to ensure wrap-up (for deallocating memory, deleting temporary files, and such), when a severe issue interrupts complex, multi-level processing and wrap-up code must be performed before exiting. Namun, "GOTO Wrapup" menjadi sebuah pendekatan yang seimbang untuk menangani anomali parah tanpa kehilangan kendali titik-keluar utama untuk memastikan wrap-up (untuk deallocating memori, menghapus file-file sementara, dan semacamnya), ketika masalah berat interupsi kompleks, multi tingkat pengolahan dan kode wrap-up harus dilakukan sebelum keluar.
The various concepts behind structured programming can help to understand the many facets of object-oriented programming . Berbagai konsep-konsep pemrograman terstruktur belakang dapat membantu untuk memahami banyak aspek pemrograman berorientasi obyek .

[ edit ] See also [ sunting ] Lihat pula

[ edit ] References [ sunting ] Referensi

  1. Edsger Dijkstra , Notes on Structured Programming , pg. Edsger Dijkstra , Catatan di Pemrograman Terstruktur , pg. 6 6
  2. Böhm, C . and Jacopini, G.: Flow diagrams, Turing machines and languages with only two formation rules , CACM 9(5), 1966. Bohm, C Jacopini. dan, G.: Flow diagram, mesin Turing dan bahasa dengan hanya dua aturan formasi, CACM 9 (5), 1966.
  3. Michael A. Jackson , Principles of Program Design , Academic Press, London, 1975. Michael A. Jackson , Prinsip Desain Program, Academic Press, London, 1975.
  4. O.-J. O.-J. Dahl , EW Dijkstra , CAR Hoare Structured Programming , Academic Press, London, 1972 ISBN 0-12-200550-3 Dahl , EW Dijkstra , CAR Hoare Pemrograman Terstruktur, Academic Press, London, 1972 ISBN 0-12-200550-3
    • this volume includes an expanded version of the Notes on Structured Programming , above, including an extended example of using the structured approach to develop a backtracking algorithm to solve the 8 Queens problem . buku ini meliputi versi yang diperluas dari Catatan tentang Pemrograman Terstruktur, di atas, termasuk contoh diperpanjang menggunakan pendekatan terstruktur untuk mengembangkan algoritma Backtracking untuk memecahkan masalah Queens 8 .
    • a pdf version is in the ACM Classic Books Series versi pdf dalam ACM Classic Buku Seri
    • Note that the third chapter of this book, by Dahl, describes an approach which is easily recognized as Object Oriented Programming. Perhatikan bahwa bab ketiga buku ini, oleh Dahl, menggambarkan suatu pendekatan yang mudah diakui sebagai Pemrograman Berorientasi Objek. It can be seen as another way to "usefully structure" a program to aid in showing that it is correct. Hal ini dapat dilihat sebagai cara lain untuk "berguna" struktur program untuk membantu menunjukkan bahwa itu benar.

[ edit ] External links [ sunting ] Pranala luar

Tidak ada komentar:

Posting Komentar