Abad kegagahan berlalu. Dia digantikan
usia sofis, ekonom dan kalkulator; Ketenaran
Eropa akan hilang selamanya.
E. Beck (Inggris, 1792)Mengapa
Setelah menjalani hidup yang tidak singkat sebagai seorang programmer, saya bertanya pada diri sendiri: "Apakah ada sesuatu yang menarik di dalamnya dari pemrograman, dan jika demikian, apa yang paling menghantam dan tetap ada dalam memori?" Bergantung pada bakat sastra, jawabannya dapat menghasilkan novel, risalah filosofis, puisi, atau lelucon. Dengan bakat Chekhov, seseorang dapat menulis serangkaian cerita tentang kehidupan abu-abu / hidup programmer biasa yang dengannya kehidupan virtual membunuh / melahirkan kehidupan nyata. Tapi di mana Chekhov sang programmer?
Untuk yang terbaik dari kemampuan saya, saya membatasi diri pada campuran esai dalam gaya "meditasi sofa." Dan meskipun teks utama selama bertahun-tahun, saya masih mengambil risiko ...
Adegannya adalah Minsk.
Bagaimana saya menjadi seorang programmer
Mulai . Setelah lulus dari BSU, mereka tidak memberi kami ijazah, tetapi pergi untuk belajar di tahun keenam tentang topik ACS. Negara membutuhkan asushnikami. Bayangkan kehidupan surgawi seorang siswa yang tahu bahwa ia memiliki ijazah, dan belajar selama enam bulan lagi.
Pemrograman dimulai dengan kursus CCK - Sistem Coding Simbolik untuk mesin Minsk-32. Dan pada awalnya ada beberapa base register misterius. Jauh kemudian, saya melakukan pemrograman yang baik di assembler, tetapi bayangkan seseorang yang tidak tahu apa-apa tentang pemrograman dan yang mulai belajar pemrograman dari Assembler, dan bukan dari buku teks, tetapi dari beberapa deskripsi teknis. Setelah sistem fisika yang harmonis, itu semacam omong kosong (saya curiga memang omong kosong). Jiwa seorang fisikawan tidak bisa menerima subjek ini. Dan kemudian kesulitan sehari-hari menimpa saya dan saya jarang pergi ke kelas. Secara umum, saya tidak tahu SSK sepenuhnya. Tapi sekarang saatnya untuk mengikuti ujian. Lima tahun sebelum ujian ini, jujur saya mempersiapkan diri dengan baik untuk ujian. Apa yang harus dilakukan sekarang? Dan kemudian saya bertemu dengan seorang teman dari coven Siberia (saya ingat dia dengan wataknya yang ceria dan bahwa selama tiga hari perjalanan kami ke Siberia, lelucon menceritakan kisah siang dan malam). Dia berbagi kesedihannya dengan bir. Solusinya ditemukan dengan cepat dan berani - dia lulus ujian untuk saya untuk sebotol vodka (masalah ini difasilitasi oleh tidak adanya tanda tambahan). Semuanya menjadi milik O'key.
Upaya untuk membuat alasan. "Aku bukan satu-satunya yang harus disalahkan." Bersalah dan guru. Kualitas pengajarannya dalam banyak hal menjijikkan. Satu guru, sebagai keunggulan komputer Minsk-32 dibandingkan IBM dengan sistem OS / 360, menunjukkan bahwa IBM hanya bekerja dengan 8 bit (byte), dan Minsk-32 empat kali lebih besar - 32 (kata). Dan, tampaknya, Minsk-32 empat kali lebih baik daripada komputer IBM. Ternyata ini hanya berlaku untuk pengalamatan. Ini semua berubah sebaliknya.
Namun, situasi yang digambarkan adalah karakteristik tidak hanya untuk pemrograman. Pada tahun keempat Departemen Fisika BSU, disiplin "Quantum Field Theory" diajarkan selama satu tahun. Dan selama satu tahun penuh kami tidak mendengar apa-apa tentang dia, tetapi kami mempresentasikan hasil kami sendiri dari seorang guru-akademisi terkait dengan parameterisasi aslinya dari kelompok Lorentz. Ini mungkin penting, tetapi di mana teori medan kuantum dari aparatus dasar fisika fundamental? Ngomong-ngomong, setiap kelompok dapat, seperti yang terlihat bagi saya, ditentukan oleh jumlah cara yang tak terbatas dan masing-masing dari mereka akan memiliki beberapa keuntungan. Bisakah Anda bayangkan berapa banyak disertasi yang dapat Anda tulis! Karena kenyataan bahwa ada beberapa universitas di Republik Belarus, saya bahkan lebih ragu tentang kualitas pendidikan mereka. Jika tidak ada cukup guru untuk satu, maka di mana mereka digores menjadi beberapa tidak jelas. Dengan "kualitas" spesialis harus bertemu nanti. Misalnya, di LSM Agat. Seorang dokter ilmu meningkatkan kualifikasi kami dengan cara ini: dia, dengan asumsi bahwa "... vektor a lebih besar dari vektor b ..." membuat kesimpulan yang bagus. Tetapi vektor-vektornya tidak teratur: tidak ada yang menentukan rasio lebih / kurang untuk mereka. Yang kedua secara implisit menggunakan rasio yang salah “jumlah produk sama dengan produk jumlah:
$ inline $ ¯_i∏_ja (i, j) = ∏_j €_ia (i, j) $ inline $ . Dari ini dia menerima banyak konsekuensi. Dan meskipun dia mengakui kesalahan itu, untuk beberapa alasan dia menganggap konsekuensinya benar (“Saya membutuhkannya, karena itu itu benar”) Dan kasus selanjutnya umumnya patologis. Insinyur radio sedang mempertimbangkan vektor listrik dari medan elektromagnetik. Secara umum, itu berputar. Mengingat mekanika Newton, insinyur radio memperkenalkan gaya sentrifugal yang bekerja pada ujung vektor medan listrik dan mengembangkan teori secara keseluruhan dari sini, menyangkal beberapa Gonorovsky - yang tampaknya merupakan otoritas di bidang teknik radio.
Kembali ke pemrograman, saya, bagaimanapun, tidak suka pemrograman, tetapi saya diilhami untuk menghormatinya. Tapi ini adalah kelebihan dari guru terbaik - kehidupan.
Untuk dilanjutkan . Tapi hidup membutuhkan balas dendam pada kita untuk trik. Saya mendistribusikan diri ke Institut Fisika dan mulai berusaha di bidang teori medan kuantum aksiomatik (Wow!). Tapi dia segera menyadari bahwa, menerima 86 rubel di tangannya dan memberikan 30 di antaranya untuk apartemen, teori medan kuantum aksiomatik tidak banyak meminjamkan dirinya, dan masalah "Bagaimana cara hidup?" Semakin meningkat. Kesimpulan: "Anda tidak bisa hidup seperti itu." Ngomong-ngomong, teman sekelas saya, yang berusia tiga tahun, bekerja sebagai adjuster pada Integral, menerima tiga kali lebih banyak dari saya dengan ijazah BSU. Jadi bagaimana Anda hidup? Dan di sini lagi, cangkir bir membantu. Pada sebuah pertemuan dengan pacar saya, saya berkenalan dengan direktur Institut Riset Ilmiah Pusat Telekomunikasi dan Informatika - di bawah para wanita, orang-orang kami berbicara tentang pekerjaan. Jadi dia memberi tahu saya apa yang dia lakukan dan mulai tampak bagi saya bahwa saya bisa menjadi manajer tugas yang baik. Lagipula, menetapkan tujuan bukanlah untuk menyelesaikannya, bukan? Dan di sinilah saya di Institut Riset Ilmiah Pusat Teknologi. Meskipun, sayangnya, bukan direktur, tetapi seorang programmer pemula. Tetapi bagaimana dengan fisika "tinggi"? Saya menghibur diri bahwa saya akan terlibat dalam pemrograman "tinggi" - semua jenis perhitungan ilmiah. Hal utama adalah jauh dari semua debit dan kredit akuntansi. Pembukuan dan bank adalah simbol kebosanan dan ingin menjauh dari mereka. Tetapi hidup dengan keras kepala menyodok keangkuhan kita menjadi kenyataan. Dan pada kenyataannya justru debit dan kredit yang kemudian harus ditangani. Berikut ini adalah evolusi dari quark ke pemrograman akuntansi. Ya, itu akuntansi yang harus diprogram. Lagi pula, "sosialisme adalah akuntansi dan kontrol." Yah, karena tempat kontrol sudah diambil (partai mengendalikan segalanya di negara kita), kita harus berurusan dengan akuntansi.
Moralitas.
Kami tidak hanya mencintai ilmu-ilmu yang tidak kami mengerti. Anda perlu melihat fondasinya, Penghormatan terhadap subjek datang dengan pemahaman tentang fundamental, jika itu, tentu saja, Fundamental.
Apa itu pemrograman dan masalah utama matematika
Ada kebosanan seperti itu - bertanya “Apa itu pemrograman?”, “Apa itu fisika?”, “Apa itu matematika?”. Tidak ada jawaban pasti untuk pertanyaan seperti itu. Alam tidak membagi dunia menjadi fisika, kimia, ... Oleh karena itu, batas-batas antara ilmu-ilmu bersifat arbitrer. Mereka disampaikan bukan oleh alam, tetapi oleh orang-orang. Ngomong-ngomong, nampaknya Engels mengatakan bahwa, pada akhirnya, akan ada dua ilmu - fisika dan psikologi (materi dan kesadaran). Seorang fisikawan, marah, pada pertanyaan "Jadi, apa itu fisika?" dia menjawab seperti ini: "Fisika adalah apa yang dilakukan fisikawan." Dan ini sangat serius.
Lalu apa yang dilakukan programmer? Apa inti dari kegiatan mereka? Tampaknya bagi saya bahwa pekerjaan utama programmer adalah untuk menyajikan masalah besar yang belum terpecahkan sebagai komposisi yang kecil diselesaikan. Komposisi ini adalah jalan dari pementasan ke solusi. Ditulis dalam bahasa formal yang diberikan, jalur ini disebut program. Maka komposisi harus berupa teks dalam bahasa formal yang diberikan - ini adalah programnya. Perwujudan formal-tekstual dari algoritma adalah pemrograman dan berbeda dari disiplin konstruktif lainnya. Jadi, ada
dua fitur pemrograman: 1) Konstruktif ekstrim 2) Kerangka sintaksis yang ketat .
Karena pemrograman adalah disiplin yang konstruktif, tidak terlalu menarik baginya apakah ada solusi, tetapi solusi itu sendiri. Dalam matematika, ada banyak teorema keberadaan yang mengklaim bahwa ada solusi, tetapi tidak mengatakan apa-apa tentang bagaimana menemukannya. Fisikawan Nobel Landau mengusulkan untuk mengusir dari kursus matematika untuk fisikawan menyebutkan teorema keberadaan. Apa gunanya fisikawan untuk mengetahui bahwa persamaan diferensial memiliki solusi. Anda perlu tahu solusinya, bukan apa itu. Hanya pada topik "apakah ada solusi?" ada cerita yang menarik tentang Landau. Ketika fisikawan pergi ke suatu tempat untuk pesta, mereka dihibur di sepanjang jalan karena, mengamati angka empat digit di depan mobil di depan, itu perlu untuk menangkap pola dalam angka secepat mungkin, hanya menggunakan dasar (aksi sekolah) tanpa mengatur ulang angka dan menggunakannya hanya sekali . Misalnya, untuk angka 73-85 kita memiliki 7-3 = 8-5, untuk angka 38-53 yang kita miliki
∛ 8 = 5 - 3 . Landau adalah otoritas besar dalam hal ini. Muncul pertanyaan apakah ada angka yang dapat ditemukan polanya - ini adalah pertanyaan tentang teorema keberadaan. Landau menjawab, "Tidak, tidak untuk siapa pun." "Kenapa, apakah kamu, Landau, membuktikan teorema tidak ada!" "Yah, tidak, hanya karena, aku, Landau, tidak menemukan pola ini untuk nomor berapa pun. Misalnya, untuk angka 75-65 ”. Cerdik. Tetapi salah satu matematikawan muda menganggap serius teorema keberadaan dan membuktikan bahwa bilangan bulat mana pun dapat "disamakan" dengan yang lain, karena ada rumus untuk mereduksi N + 1 menjadi N:
√ ( N + 1 ) = s e c ( a r c t g ( √ N ) )Sayangnya, setelah bukti teorema keberadaannya, permainan kehilangan ketajamannya. Ini dia: "
Semakin banyak pengetahuan, semakin banyak kesedihan .
"Solusi desain membedakan dua tahap:
- Algoritma. Algoritma masalah - pengurangan komposisi operasi standar yang orang pahami. Ini bagian terpenting. Lagipula, program ditulis untuk orang.
- Coding. Pengurangan algoritma ke komposisi operasi yang diberikan dasar dan data - frase dalam bahasa pemrograman. Namun, penulisan program terkecil melewati tahap mikroalisasi.
Contoh masalah konstruktif pribadi
Himpunan operasi yang dapat diterima adalah operasi sekolah yang dilakukan oleh kompas dan penggaris: membangun garis yang menghubungkan dua titik tertentu, membagi garis menjadi dua, membangun tegak lurus, mengekstraksi akar kuadrat ...
Berikut adalah masalah bangunan klasik:
Kuadrat lingkaran . Diberikan lingkaran, Anda perlu menggunakan
jumlah terbatas dari operasi di atas untuk membangun persegi dengan luas yang sama dengan luas lingkaran yang diberikan.
Tiga bagian sudut . Sudut yang diberikan harus dibagi menjadi tiga bagian yang sama menggunakan jumlah terbatas dari operasi di atas
Di sini kemudian, pendekatan "ke garis teorema keberadaan - memberi kita solusi segera" memberikan misfire.
Dengan asumsi ada solusi, itu telah dicari selama berabad-abad. Tetapi ternyata tidak ada solusi.Banyak ahli matematika dan amatir berjuang untuk tugas-tugas ini (dan sebagai seorang anak saya mengusulkan solusi saya untuk mengkuadratkan lingkaran, yang ternyata menjadi perkiraan dengan akurasi sekitar 10% - tetapi ini sudah menjadi jelas di masa muda saya). Banyak solusi yang diusulkan, tetapi semuanya ternyata merupakan perkiraan. Pada abad ke-19, terbukti bahwa tugas tidak memiliki solusi. Untuk pemotongan sudut, ini sekarang dapat ditunjukkan kepada siswa (lihat, misalnya, buku Courant dan Robbins "Apa itu Matematika"), dan untuk mengkuadratkan lingkaran kepada siswa. Selain itu, situasinya sedemikian rupa sehingga mungkin untuk menemukan perkiraan yang sewenang-wenang akurat, tetapi tidak ada solusi yang tepat. Hasilnya, jika Anda memikirkannya, aneh. Seolah-olah di depan kotak yang diinginkan ada tembok yang tidak bisa diatasi. Tetapi bermanfaat untuk memungkinkan operasi lain juga, karena solusinya menjadi dasar. Ini dilakukan oleh Archimedes sehubungan dengan pemotongan sudut.
Formalisasi konsep suatu algoritma
Apa yang dimaksud dengan algoritme jelas secara intuitif. Tetapi ahli matematika tidak akan menjadi ahli matematika jika mereka tidak memformalkan konsep suatu algoritma. Intuisi telah berulang kali gagal. Jadi tidak mungkin untuk percaya bahwa ada fungsi kontinu yang tidak memiliki turunan di mana saja - di mana pun Anda menyentuh kurva - di mana pun ada duri. Intuisi tidak mengizinkan hal ini.
Beberapa formulasi untuk mempelajari konsep suatu algoritma (atau penjelasan ilmiah) diusulkan: fungsi rekursif, penggantian abjad Markov, mesin Post, mesin Turing. Kesetaraan formulasi ini secara bertahap terbukti. Pada akhirnya, matematikawan menganggapnya sebagai aksioma bahwa formulasi ini memadai untuk konsep algoritma - ini adalah tesis Gereja. Mesin Turing dalam istilahnya mendekati mesin komputasi nyata. Sangat mendasar untuk mensimulasikannya, tetapi model ini tidak diperlukan karena sifat primitifnya dan, oleh karena itu, kelambatan. Tetapi sebagai alat teoritis, itu sangat diperlukan. Sebagai contoh, adalah mungkin untuk memformalkan konsep kompleksitas algoritmik. Dan sekali lagi hal-hal menakjubkan muncul. Jadi intuisi programmer menyarankan bahwa multiplikasi lebih sulit daripada multiplikasi. Mengalikan angka a dengan angka n berarti melakukan n penambahan. Jadi nampaknya penggandaan beberapa kali lebih rumit. Dan apa yang teori berikan?
Misalkan ada dua angka n-bit dan mesin Turing mengalikannya dengan U (n), dan penambahan dengan S (n). Kemudian intuisi menyatakan bahwa U (n)) / (S (n) → ∞. Tetapi analisis teoritis menunjukkan bahwa untuk sembarang kecil ε yang kita miliki
$ inline $ U (n)) / [S (n) (S (n)) ^ ε] → 0 $ inline $ . Dan ini menunjukkan bahwa lebih dekat daripada perkalian dengan penambahan sudah tidak ada - mereka dekat dalam kompleksitas.
Masalah konstruktif apa pun dapat direpresentasikan sebagai pemrograman mesin Turing universal. Muncul pertanyaan: apakah
mungkin untuk menemukan algoritma universal untuk masalah konstruktif ? Dan di sini masalahnya sudah sangat berbeda dari pernyataan jenis quadrature lingkaran. Di sana dimungkinkan untuk menambahkan operasi konstruktif yang diizinkan baru dan masalahnya diselesaikan. Tidak ada yang ditambahkan ke mesin Turing universal - ini adalah mesin paling umum, dapat menerapkan algoritma apa pun. Dan ternyata bahkan di sini sang pencipta membuat rintangan. Banyak masalah konstruktif ditemukan yang tidak memiliki algoritma umum untuk solusinya. Misalnya, dalam logika matematika, mereka mencoba untuk waktu yang lama untuk menemukan suatu algoritma yang memungkinkan untuk menentukan apakah satu ekspresi logis dapat dikurangkan dari yang lain. Ternyata masalahnya tidak ada solusi.
Kami memiliki situasi yang serupa dalam Teorema Hebat Fermat: persamaan
xn+yn=zn tidak memiliki solusi dalam bilangan bulat untuk n> 2.
Pernyataan ini dapat diberikan karakter sedemikian rupa sehingga saya ingin mengatakan, "Ini tidak mungkin."
Membagi di sisi kanan, kita beralih ke bilangan rasional: persamaan
pn+qn=1 tidak memiliki solusi dalam bilangan rasional <> 0.
Lebih jauh, kita membatasi diri bahkan untuk n. Bagi mereka, kami memiliki gambar:

Gambar menunjukkan kurva Fermat untuk n = 2 (lingkaran) dan n = tak terbatas (kuadrat). Untuk n = 2k> 2, semua kurva lainnya terletak di antara lingkaran dan kuadrat, dan ketika n bertambah, mereka menjadi lebih dekat dan lebih dekat ke alun-alun. Dan, jika Anda mengambil semua kurva seperti itu, mereka akan semakin mengisi ruang di sekitar alun-alun. Dan ada banyak titik tak terhingga dengan koordinat rasional sehingga jika semua titik rasional dicat dalam warna gelap, maka seluruh ruang persegi akan menjadi hitam - banyak titik dengan koordinat rasional di mana-mana padat. Namun, tidak satu pun kurva Fermat yang melewati titik-titik rasional. Tampaknya untuk ini, Anda perlu gila. Namun, teorema Fermat mengatakan bahwa kurva yang sangat halus tidak melewati titik rasional. Tidak mungkin untuk percaya. Ada yang salah di sini.
Situasi serupa terjadi di semua matematika. Akan menyenangkan untuk masalah matematika dan pendekatan secara matematis. Sebagai contoh, bayangkan menemukan solusi untuk masalah matematika "Jika A, maka B" sebagai gerakan di ruang tertentu dari objek matematika dari data asli ke yang diperlukan. Berikut adalah contoh jalur konstruktif dari A ke B:

Saat bergerak di sepanjang jalan, hanya aksioma aritmatika yang digunakan.
Itu akan menjadi untuk setiap teorema "Jika A, maka B", seseorang dapat membangun dengan metode konstruktif lintasan yang mengarah dari A ke B. Ini akan menjadi kemenangan matematika. Bisakah ini dilakukan? Apakah ada lintasan seperti itu?
Ahli matematika hebat Hilbert (dianggap oleh banyak orang terhebat di abad ke-20) dengan antusias memulai program Leibniz - untuk memformalkan dan membuat algoritma masalah matematika apa pun. Program ini disebut formalisasi matematika - untuk membawa dasar aksiomatik untuk semua matematika, mengekspresikan semua masalah matematika dalam bahasa formal sebagai konsekuensi dari aksioma, dan mendapatkan semua teorema sesuai dengan aturan logika matematika. Pekerjaan besar telah dilakukan untuk sepenuhnya memformalkan matematika. Mereka yang ingin dapat melihat dua volume tebal Yayasan Matematika oleh Hilbert dan Bernays. Tetapi di tengah-tengah karya itu muncul karya Kurt Gödel, yang, antara lain, membuktikan bahwa dalam teori formal apa pun yang mengandung aritmatika, seseorang dapat menyatakan teorema yang bermakna yang tidak akan dapat dikurangkan. Dan dia (atau, tanpa pembenaran, penolakannya) dapat diambil untuk aksioma baru. Kami menarik perhatian pada kata "formal". Untuk teori informal, Anda selalu bisa mengatakan sesuatu seperti "sudah jelas bahwa ..." dan segala macam rintangan akan dihilangkan. Oleh karena itu, aplikasi teorema Godel untuk teori-teori informal tidak benar. Ini terutama berlaku untuk filsafat, yang suka berspekulasi tentang topik ini.
Jadi, MATEMATIKA
FORMAL TIDAK SESUAI DAN TIDAK AKAN PERNAH AKAN SELESAI. Ini membuatnya terkait dengan fisika, yang tidak pernah mengklaim formalisasi karena posisi alaminya (dan terlebih lagi, semangat formalisasi adalah asing bagi fisika, yang terbiasa dengan fakta bahwa semua aksioma bersifat sementara).
Tampaknya seseorang dapat keluar dari situasi dengan mengambil teorema yang tidak dapat direduksi (atau negasinya) sebagai aksioma, menambahkannya ke sistem aksioma asli dan mendapatkan teorema wajar dari sistem formal yang diperluas ini. Tetapi teorema Gödel berlaku untuk sistem formal yang diperluas ini. Kami mendapatkan proses tanpa akhir. Hanya dalam sistem yang tak terbatas seseorang dapat menemukan universalitas. Tetapi bagaimana cara bekerja dengan serangkaian aksioma yang tidak terbatas? Masalahnya diperumit oleh fakta bahwa aksioma yang paling tidak berbahaya dapat memberikan konsekuensi yang sama sekali tidak terduga. Sebagai contoh, ambil aksioma pilihan: jika satu set set disjoint diberikan, maka dari set masing-masing satu dapat memilih satu elemen dan mengumpulkan mereka ke dalam satu set. Tampaknya ada sesuatu yang perlu diperdebatkan. Tetapi dengan menggunakan aksioma pilihan, Banach dan Tarski membuktikanbahwa dua bidang S1 dan S2 dari jari-jari yang berbeda dapat dibagi menjadi jumlah terbatas yang sama dari pasangan terputus berpasangan:S1 = A1 + A2 + ... + An dan S2 = B1 + B2 + ... Bnsehingga untuk semua i: Ai = Bi. Jadi, bola yang tidak sama dibagi menjadi beberapa bagian yang identik. Omong kosong apa ini? Tapi semuanya logis, apa yang harus dipercaya, apa yang harus ditolak? Menambahkan satu per satu, kita mendapatkan satu bola, dan satu lagi - bola besar.John von Neumann, menggunakan aksioma pilihan, membuktikan bahwa segmen A dari sebuah garis dengan partisi yang terbatas kurang dari segmen B dari sebuah garis yang lebih pendek dari panjangnya. Jadi percayalah pada matematika ini. Jika kita menerima aksioma pilihan yang tidak berbahaya (dan apa yang bisa lebih jelas daripada fakta bahwa satu siswa dapat dipilih dari kelas pertama, satu siswa dari kelas kedua, dll.), Maka konsekuensi paradoks sepenuhnya diperoleh.Ngomong-ngomong, von Neumann juga membedakan dirinya dalam pemrograman - ia membuktikan kemungkinan reproduksi diri automata dan arsitektur komputer von Neumann berasal darinya; membedakan dirinya dalam matematika dan fisika kuantum - ia membangun alat matematika fisika kuantum berdasarkan konsep ruang Hilbert dan mencoba membuktikan ketidakmungkinan parameter tersembunyi yang diandalkan Einstein, dengan alasan bahwa teori kuantum tidak lengkap.Jadi, kembali ke gambar yang lebih tinggi, kami menyesal bahwa kami tidak dapat membangun lintasan universal yang ditunjukkan dengan cara konstruktif. Sayang !!! Ini berarti matematika bahkan lebih rumit daripada yang terlihat. Anda dapat berkeliling solusi secara sewenang-wenang menutup, tetapi tidak pernah mendapatkannya. Ini dia "quadrature" dari masalah matematika umum. Tapi, tidak seperti mengkuadratkan lingkaran,di bawah perluasan set operasi konstruktif, ia tidak memiliki solusi . Anda hanya dapat memprogram tugas yang cukup pribadi. Masalah yang paling umum tidak memiliki solusi konstruktif. Selain itu, bahkan banyak masalah tertentu tidak memiliki solusi konstruktif yang sama dan, oleh karena itu, mereka perlu dibagi menjadi masalah yang lebih khusus, yang, mungkin, memiliki solusi konstruktif.Kembali ke teorema Godel, kami mencatat bahwa bahasa pemrograman adalah sistem formal. Jadi, Anda dapat menulis sebuah program yang tidak ada program yang membuktikan kebenaran atau kesalahannya. Benarkah begitu? Program tertulis atau negasinya dapat diambil untuk aksioma pemrograman.Jadi, tidak ada verifikasi universal program. Dan tidak ada program universal. Yah, meskipun tidak mungkin untuk memiliki program universal secara umum, tetapi setidaknya mendapatkan yang universal untuk bidang subjek tertentu.Berikut ini adalah gambar program yang khas:
Kerugian dari pendekatan ini adalah bahwa itu dipertajam oleh fungsi tertentu. Tentu saja, Anda bisa membuat parameternya. Dengan parameterisasi ini, jenis fungsi tidak berubah, tetapi hanya parameter argumennya yang berubah. Tetapi saya ingin parameter untuk dapat mengubah jenis fungsi. Ya, Anda dapat melewatkan fungsi sebagai parameter - program integrasi fungsi, misalnya. Tapi itu tidak melampaui integrasi. Singkatnya - akan menyenangkan untuk memberikan deskripsi lengkap tentang area subjek sebagai parameter . Yaitu
Inilah yang saya inginkan:
Ba! - Tapi ini adalah program tentang Prolog. Prolog sendiri bertindak sebagai fungsi parametrik yang disebutkan di atas. Deskripsi Domain - Teks prolog yang menyandikan domain. Tujuannya adalah parameter.Saya sangat kagum ketika saya mencoba menerapkan tugas pencarian pada banyak hubungan di Prolog. Pencarian ini diimplementasikan pertama kali dalam Delphi dan kemudian dalam C #. Jadi, apa yang diimplementasikan oleh beberapa program yang agak besar di Delphi (C #), pada Prolog cocok menjadi deskripsi yang ringkas tentang hubungan dan fungsi pada mereka. Dan kemudian berbagai permintaan target dapat diminta untuk uraian ini. Benar, saya tidak bisa mengatakan apa-apa tentang kinerja komparatif. Tetapi pada beberapa contoh spesifik, saya tidak melihat perbedaan yang signifikan. Namun, Delphi masih menggambar grafik indah dari hubungan target. Saya tidak melakukan ini di Prologe. Tetapi untuk masing-masing miliknya. Logika harus diimplementasikan oleh bahasa logis, presentasi - bahasa presentasi, laporan - bahasa laporan, bahasa input-input, komunikasi - bahasa komunikasi, interaksi layanan - bahasa distribusi,interaksi dan orkestrasi layanan.Klasik
Klasik lama
"Klasik perlu diketahui dan dihormati." Tidak perlu berpikir bahwa semuanya diciptakan pada abad kita. "Tidak ada yang baru di bawah bulan." Ini berlaku untuk pemrograman dan konsep dasarnya. By the way, istilah "algoritma" itu sendiri berakar pada abad kesembilan dan berasal dari nama matematikawan al-Khwarizmi. Algoritma banyak konstruksi Euclid. Jadi algoritma untuk menemukan pembagi umum terbesar masih hidup. Lully (Muslim melemparkan batu ke arahnya - ini adalah peran "progresif" agama) pada abad ke-13 datang ke ide mesin logis yang beroperasi dengan simbol. Dalam manuskrip Leonardo da Vinci, gambar-gambar perangkat komputasi tiga belas digit ditemukan. (Namun, hanya begitu banyak yang ditemukan dalam manuskripnya sehingga beberapa sarjana dengan serius mengklaim bahwa Da Vinci bukan manusia, tetapi alien.)
Pada 1623, Schickard, seorang profesor bahasa (!!) di University of Thuring, mendesain komputer. Great Pascal memiliki gagasan yang jelas tentang komputer mekanik dan membangun arithmometer mekanik. Leibniz yang hebat mengedepankan gagasan menghitung pernyataan untuk mengurangi perselisihan menjadi perhitungan. "" Untuk berdebat, mari kita duduk dan mencari tahu siapa yang benar. " jika saya bisa menggunakan mesin pada saat yang sama, "kata Leibniz, dan membuat komputer dan memimpikan mesin universal yang dapat menghitung semuanya.
Bebbage pada abad ke-19 merancang dan mulai membangun
mesin mekanis universal yang dapat diprogram . Ini adalah komputer universal pertama. Babbage agak dilupakan, jadi saya tidak bisa menolak, dan saya akan mengutip beberapa fakta menarik tentangnya.
"Kami percaya bahwa keberadaan perangkat seperti itu, selain menghemat tenaga kerja saat melakukan operasi aritmatika, akan membuat layak sebanyak itu, yang, karena layak, terlalu dekat dengan batas kemampuan manusia," laporan Asosiasi Inggris untuk Kemajuan Ilmu Pengetahuan untuk Studi Mesin Analitik Babbage mengatakan.
Jika Anda mengikuti terminologi modern - Babbage "fisikawan". Dia tidak suka musik. Di opera, ia tampil dengan musik berwarna. Mengenai Puisi Tennyson
"Setiap menit seorang pria meninggal,
Tetapi setiap menit seorang pria dilahirkan ”Babbage menulis kepada penulis berikut ini: “Saya harus secara serius menunjukkan kepada Anda bahwa perhitungan ini mengarah pada kesimpulan bahwa total populasi berada dalam keadaan kesetimbangan konstan. Pada saat yang sama, diketahui bahwa jumlah yang disebutkan terus meningkat. Oleh karena itu, saya mengambil kebebasan dengan berasumsi bahwa dalam edisi berikutnya dari puisi Anda yang sangat bagus, perhitungan yang salah yang saya tunjukkan akan dikoreksi sebagai berikut:
Setiap saat seseorang mati
Tapi 1,16 orang dilahirkan ...Saya dapat memberi tahu Anda angka yang lebih akurat - 1,167, tetapi ini, tentu saja, harus melanggar ritme ayat ... "
Meskipun demikian (dan, mungkin, berkat ini) Babbage bermaksud mempelajari sifat humor. Dia adalah generator ide yang khas. Karena kelebihan ide, dia tidak menyelesaikan banyak proposal dan proyeknya. Diciptakan speedometer, menciptakan mesin cross-planing dan berputar-putar, cetakan, pemotong, mengusulkan metode ukiran pada kayu. Secara umum, ini adalah bahasa Inggris Leonardo da Vinci. Pada tahun 1832, ia menulis sebuah buku, "Ekonomi Mesin dan Produksi," di mana ia mengantisipasi analisis sistem, riset operasi, dan organisasi ilmiah perburuhan. Marx mengenal buku ini dengan baik dan mengutipnya di Capital, Keynes berbicara dengan kagum tentang hal itu. Tetapi penemuan yang paling penting adalah mesin analitis, yang merupakan komputer mekanik universal yang dapat diprogram. Tidak ada cukup uang negara dan Babbage menghabiskan uangnya untuk membangun mobil. Mencari uang datang dengan semua jenis sumber. Bersama dengan rekannya, Ada Lovelace datang dengan "sistem win-win" untuk balap kuda. Sistem itu mengarah pada fakta bahwa wanita itu harus membayar dengan mutiara keluarga. Kemudian Babbage berencana untuk menulis novel untuk tahun ini dan membelanjakan hasilnya untuk mobil. Membujuk temannya dari usaha ini. Kemudian Babbage yang tak kenal lelah berencana membanjiri negara itu dengan mesin tic-tac-toe dan, sekali lagi, memasukkan hasilnya ke dalam mobil. Tetapi uang diperlukan untuk ini.
Musisi jalanan mengganggu penampilannya. Babbage melalui pers, parlemen, polisi melawan mereka. Sebagai tanggapan, setiap pemabuk menganggap tugasnya untuk berteriak di bawah jendela Babbage, para musisi sudah dari jauh untuk bersenang-senang di bawah jendelanya. Setelah kematian Babbage, berita kematian di The Times memiliki garis "... seorang pria yang hidup sampai hampir 80 tahun, terlepas dari penganiayaan musisi jalanan." Saya ingin tahu tahun berapa dia akan hidup sekarang, ketika musisi jalanan modern dipersenjatai dengan desibel yang jauh lebih besar?
Begitu Babbage datang dengan rencana untuk menangani kebakaran secara efektif, tetapi berkata, "Saya tidak akan mempublikasikannya, mereka semua akan hilang, biarkan semua rumah mereka dibakar." Saya benci kesalehan. Ketika dia melihat pompa air di Italia dengan tulisan yang mengatakan bahwa pemiliknya membangunnya atas nama cinta untuk Tuhan dan negaranya, sehingga pengembara yang lelah dapat memuaskan dahaga mereka, maka Babbage waspada, memeriksa pompa air dan menemukan bahwa setiap kali seorang musafir memompa air, sebagian besar jatuh ke rumah seorang tuan yang saleh. Setelah episode ini, Babbage menambahkan, "
Hanya ada satu hal yang saya benci lebih dari kesalehan adalah patriotisme. "
Programmer pertama untuk mesin analitik Babbage adalah putri dari penyair Byron, Ada. Berikut ini beberapa pernyataannya.
“
Mesin analitis dapat didefinisikan sebagai perwujudan material dari setiap fungsi tidak terbatas yang memiliki tingkat umum atau kompleksitas ” !!!
"Ketika mempertimbangkan penemuan baru, kita sering menghadapi upaya untuk melebih-lebihkan apa yang sudah kita anggap menarik atau bahkan luar biasa, dan di sisi lain untuk meremehkan keadaan sebenarnya ketika kita menemukan bahwa ide-ide baru kita menggantikan ide-ide yang kita anggap tidak tergoyahkan."
Ada menciptakan istilah "sel yang bekerja", "siklus". Jadi bahasa pemrograman "Ada" yang digunakan di Pentagon memiliki nama yang layak.
Babbage lebih ahli fisika daripada ahli matematika. Dia tertarik dengan perwujudan praktis dari kalkulator universal. Ketika matematikawan mulai bekerja, mereka, seperti biasa, ingin memformalkan konsep kalkulator universal. Bagaimanapun, konsep informal sebuah mesin adalah satu hal, dan konsep yang tepat adalah hal lain. Pada akhirnya, seperti yang telah kita lihat, intuisi dan formalisme berbeda. Gereja, Markov adalah yang pertama memformalkan konsep suatu algoritma. Yang pertama sebagai fungsi rekursif, yang kedua sebagai satu set permutasi dalam alfabet, yaitu, sebagai tata bahasa. Turing memformalkan konsep suatu algoritma dalam istilah yang hampir teknis - itu adalah mesin Turing.
Mesin Turing universal adalah padanan teoretis dari mesin komputasi universal - komputer. Ternyata ada bahasa yang cukup dari dua karakter (| dan spasi), empat perintah dan memori eksternal tak terbatas - dan algoritma apa pun dapat diprogram pada mesin Turing universal. Terbukti bahwa ketiga definisi algoritma di atas adalah setara - apa yang dinyatakan dalam satu definisi akan diekspresikan dalam definisi lain. Keunggulan Turing tercermin dalam keberadaan Hadiah Turing untuk Pencapaian Pemrograman Terbaik. Ngomong-ngomong, Turing mengajukan apa yang disebut tes Turing - tes untuk membedakan seseorang dari komputer. Ini adalah
ujian murni
fungsional tanpa zat mistis seperti jiwa manusia . Jika seseorang duduk di satu ruangan dan sebuah mesin berkomunikasi dengan mereka di ruangan lain melalui layar, dan untuk waktu yang lama kita tidak dapat memutuskan di mana orang itu berada dan di mana alat itu berarti, mesin itu secara intelektual setara dengan orang itu dan tidak perlu untuk membahas mana dibuat dan bagaimana. Ini tidak penting.
Yang sudah disebutkan von Neumann murni secara teoritis membuktikan kemungkinan reproduksi diri automata. Omong-omong, fitur ini diterapkan dalam praktik.
Sastra klasik
Teks itu diletakkan di salah satu tablet Babel: "Masa-masa sulit telah datang, para dewa menjadi marah, anak-anak tidak lagi mematuhi orang tua mereka, dan semua orang berusaha menulis buku." Sejumlah besar buku telah dibaca, setengah dibaca. Tetapi beberapa dari mereka sangat penting bagi saya. Yang mana Di awal kegiatan TI saya, ini adalah:
Anak sungai Bagaimana sistem perangkat lunak dirancang dan diprogramKlasik tentang masalah yang dihadapi oleh proyek besar.
Dahl, Dijkstra, Hoor. Pemrograman struktural .
Ini menandai awal era baru dalam pemrograman. Anda terkejut melihat betapa tidak terduga dan dalamnya Anda dapat melihat program biasa. Ini berisi banyak pernyataan filosofis.
Dijkstra. Disiplin pemrograman.Buku yang benar-benar luar biasa. Di masa muda saya, saya menghabiskan dua liburan di sana. Sayangnya, saya tidak dapat meyakinkan diri saya bahwa saya mengerti segalanya. Ketika saya bertemu programmer yang mencoba bersinar dengan intelektualitas mereka, saya membiarkan mereka membaca buku ini. Mereka mengembalikannya dengan sedikit malu. Reaksi yang serupa terjadi pada "Laporan yang Telah Direvisi tentang Algol-68" (sebagaimana dikatakan oleh salah satu pihak berwenang tentang Algol-68 - "ini adalah bahasa untuk programmer dan penyair")
Wirth. Pemrograman sistematis.Baca buku pertama, yang menunjukkan bahwa tutorial pemrograman bisa baik.
Yodan. Pemrograman struktural .
Hal utama yang harus diperhatikan pada topik modis. Tapi di sini tidak pada tempatnya.
Gris. Ilmu pemrograman“Jika kita menganggap buku penting Dijkstra (Disiplin Pemrograman) wahyu intelektual, buku Gris adalah tindakan kerasulan” (Ershov).
Aho, Hopcroft, Ullman. Konstruksi dan analisis algoritma komputasiBuku penyeimbang dengan buku modern satu hari seperti "C- + dalam 21 detik, satu menit, ..." berisi eksposisi algoritma cepat penting yang tidak akan mati untuk waktu yang lama.
Tur Metodologi pemrogramanAda banyak catatan menarik tentang pemrograman di kecil dan pemrograman besar.
Kushnirenko. Pemrograman untuk ahli matematikaTutorial hebat dengan presentasi tingkat tinggi.
Selama pemrograman aktif saya, sangat sedikit yang bisa ditambahkan ke daftar ini. Banyak waktu telah berlalu sejak itu. Tetapi bahkan sekarang, teknologi pemrograman tidak memiliki basis fundamental seperti fisika sebagai basis untuk teknologi teknis. Keadaannya menyerupai keadaan teknologi abad pertengahan, ketika itu tidak memiliki basis ilmiah dalam bentuk fisika. Kemudian proyek-proyek mesin gerak abadi muncul.
Lain-lain
Mitos
Siapa pun dapat memprogram . Pada akun ini, ke tempat kutipan dari Shakespeare: "
Saya bisa memanggil roh dari jurang, Dan saya bisa dan semua orang bisa, Satu-satunya pertanyaan adalah apakah mereka pergi ke panggilan ." Seperti halnya aktivitas profesional, pemrograman membutuhkan kecenderungan dan kemampuan. Sepertinya saya tidak semua programmer bisa memprogram. Dimungkinkan untuk mengetahui Windows NT dari bitick dan menjadi tidak berdaya sebelum menyelesaikan tugas aplikasi dasar sendiri.
Setiap orang dapat menulis dalam bahasa ibu mereka, tetapi tidak banyak penulis yang baik. Ini juga berlaku untuk menulis dalam bahasa pemrograman.
Tugas akuntansi mudah untuk ditulis dan tidak menarik, tetapi membuat halaman web sulit dan menarik.Baik yang pertama dan kedua dapat bervariasi. Hal utama: tugas sehari-hari, kata mereka, mudah diimplementasikan dan Anda sebaiknya tidak mengerjakannya secara khusus. Hanya semua jenis kunshtyuki yang layak diperhatikan. Namun demikian, menurut pendapat saya, hanya programmer yang mengatakan, tanpa membuat proyek yang layak. Ini seperti ide musik sebagai headphone yang modis - dan banyak pecinta musik yang berkeliaran di headphone, dan dengan semacam keterlibatan khusus dalam semacam esoterik. Saya sendiri pernah membayar upeti kepada programmer keangkuhan. Rupanya setiap programmer melewati tahap "Saya tahu segalanya dan saya bisa melakukan segalanya". Tetapi bagi sebagian besar, itu tidak berlangsung lama.
Mood semacam ini bisa dari sisi "tinggi". Di satu perusahaan saya bertemu seorang programmer yang datang dari Fiztekh, yang pernah memprogram penerbangan rudal balistik. Kami memulai percakapan tentang penggunaan matematika di perbankan. Dia segera membawakan saya banyak halaman dengan model matematika dari sebuah fragmen aktivitas bank - persamaan diferensial dengan penundaan (!!) (penundaan datang dari bunga - pinjaman yang dikeluarkan hari ini menghasilkan untung setelah beberapa saat - itulah penundaan). Ternyata ia mulai dari fungsi laba bank dan kemudian menerapkan metode matematika yang terkenal. Tetapi tugas itu terdiri dari menemukan fungsi ini. Tetapi bagi matematikawan-programmer itu adalah hal yang sepele dengan mana bankir mana pun akan mengatasinya, tetapi bankir itu tidak akan mampu untuk lebih jauh menumpuk banyak formula. Yang kedua benar, tetapi yang pertama tidak. Dan inilah intinya. Yang dibutuhkan bukan hanya matematika, tetapi matematika yang bekerja. Kalau tidak, itu hanya skolastik formula. Ngomong-ngomong, fungsi laba pasti akan menjadi fungsi yang terputus-putus (hampir semua indikator ekonomi terputus, misalnya nilai tukar) dan karenanya metode klasik kontinu tidak berlaku untuk itu - misalnya prinsip maksimum Pontryagin.
Berikan saya komputer yang cukup kuat dan saya akan memecahkan kode apa pun . Ada banyak programmer yang akan memastikan bahwa kode apa saja dapat diretas. Berikan hanya komputer yang cukup kuat. Menurut pendapat saya, ini adalah ketidaktahuan tentang dasar-dasar teori informasi yang ditetapkan oleh Shannon. Dan semuanya sangat sederhana. Anggap noise sebagai pesan yang disandikan. Apa pun bisa diekstraksi dari kebisingan. Itu tidak dapat diterjemahkan dengan cara apa pun - untuk mengekstrak sesuatu yang bermanfaat. Kalau tidak, ini bukan kebisingan. Suara yang ditumpangkan pada pesan memberikan suara. Jadi, mari letakkan suara di pesan: Noise (W) + Message (C) = Noise1 (1). Noise 1 tidak dapat didekripsi. Tentu saja, dengan pencarian lengkap Anda bisa sampai ke bagian bawah pesan. Tetapi bagaimana Anda tahu bahwa ini adalah pesan yang tepat. Marilah kita memiliki pesan "Petya bodoh." Pencarian lengkap akan mengekstrak pesan ini, tetapi juga akan mengekstrak seperti: "Petya adalah pria yang cerdas" dan "Vasya adalah orang bodoh", dll. Jadi yang mana yang harus diambil?
Tapi Anda masih bisa mengekstrak pesannya. Untuk melakukan ini, Anda perlu mengetahui kebisingan dan metode superposisi. Kemudian = 1-. Tapi ini tidak membutuhkan superkomputer, tetapi Anda perlu tahu kebisingannya.
Kebetulan, skema serupa tampaknya diterapkan dalam percakapan antara presiden Amerika dan Rusia.
Programmer tidak membutuhkan matematikaSekitar pemrograman, humaniora-aesthetes mulai berjuang. Nah, bagaimana seorang programmer bisa menggambar halaman Web yang indah tanpa esthete, dan bagaimana bergaul tanpa esthete dengan antarmuka GUI. Dan engraftments muncul. Dan mulai terlihat bahwa mereka adalah programmer.
Tampak bagi saya bahwa sebagai seorang fisikawan adalah sengsara tanpa matematika, demikian juga seorang programmer dan sengsara dan konyol tanpa pengetahuan matematika. Paling-paling, itu adalah pengrajin. Anda dapat mengetahui setiap opsi dari sistem operasi, cara menginstal semua jenis driver dan tidak dapat mengembangkan proyek dasar. Dalam teknologi, ini adalah situasi yang biasa. Ada insinyur, dan ada pekerja. Anda bisa menjadi perancang mobil yang hebat dan mengendarainya dengan buruk, atau Anda bisa menjadi pembalap mobil dan bukan hal yang perlu dipahami dalam prinsip-prinsip membangun mesin.
Prinsip
Apa ketentuan umum yang mengesankan Anda?
Bagilah dan taklukkanPrinsip yang paling berguna. Tugas apa pun harus dapat dibagi menjadi beberapa tugas yang lebih sederhana sehingga subtugas dapat diselesaikan dan digabungkan untuk mendapatkan solusi dari masalah aslinya. Sehubungan dengan subtugas yang diperoleh, seseorang dapat melakukan hal yang sama. Dan sebagainya. Seni divisi dalam banyak hal adalah seni menemukan algoritma. Contoh-contoh kekurangan angka: sort cepat membagi set yang diurutkan menjadi dua, pencarian biner membagi set pencarian menjadi dua.
Biarkan jelek tapi seragamJangan membuat variasi yang tidak perlu. Itu hanya meningkatkan entropi. Terima standar pemersatu dan patuhi itu dengan teguh. Ini berlaku untuk nama, singkatan, gaya pengkodean.
Dalam hal ini, sangat mengejutkan bahwa tidak ada konstruksi bahasa yang diperlukan yang mendorong sistem. Dan alat paling canggih untuk mengembangkan aplikasi DBMS sendiri didasarkan pada pendekatan file. Dan bagaimana akan lebih mudah untuk mempresentasikan proyek dalam bentuk database dan menerapkan alat pencarian dan seleksi untuk itu ...
Bahasa mendefinisikan pemikiranDengan membatasi diri pada konstruksi sintaksis tertentu, kita bahkan tidak curiga bagaimana kita membatasi pemikiran kita. Akan seperti apa kalkulus diferensial tanpa simbolisme matematika? Apa yang akan menjadi sintaksis bahasa pemrograman tanpa formalisme Backus-Naur atau setara dengan itu?
Program = Algoritma + DataDalam pendekatan berorientasi objek, posisi ini meluas ke konstruksi dasar - objek yang terdiri dari data dan metode. Pemrograman pertama kali dikembangkan di bawah tanda algoritma, dan kemudian data. Subjek DBMS sepenuhnya berada di bawah judul "data". Tetapi algoritma merangkak di sana juga - metode pencarian, metode pengindeksan.
Memodelkan area subjekModel verbal menghasilkan ide tentang area subjek, dapat diakses oleh spesialis TI dan berisi yang paling penting. Model informasi dari tipe "entitas - komunikasi" menghasilkan basis data. Model fungsional "modul M menerima pada input Masuk dan mengubahnya menjadi Keluar" mendefinisikan arsitektur program. Model objek mewakili area subjek sebagai satu set objek yang berinteraksi. Model acara membantu untuk menggambarkan pergerakan sistem sebagai perubahan dalam menanggapi peristiwa tertentu.
Beberapa tugas
Beberapa tugas yang mengesankan saya. Saya mengutip, tentu saja, hanya tugas kecil. Sulit untuk mengatakan secara singkat tentang tugas-tugas besar, tetap pada genre.Masalah Biji KopiBank memiliki jumlah biji kopi hitam putih yang diketahui dan pasokan kacang gratis. Pilih dua butir secara acak dari kaleng. Jika warnanya sama, maka taruh dalam stok dan masukkan gandum hitam di bank. Jika warnanya berbeda, kembalikan gandum putih, dan masukkan hitam. Lanjutkan proses sampai satu butir ada di bank. Apa warnanya?SolusiProsesnya jelas siklus: tindakan “ambil dan masukkan” diulangInvarian dari siklus adalah paritas dari jumlah butir putih. Jadi, jika jumlah awal butir putih genap, maka butir terakhir akan berwarna hitam, dan jika ganjil, maka putih. Ada tiga file yang sangat panjangpada manual: Pekerja r, Siswa, Pengangguran b. Mereka dipesan berdasarkan nama. Diketahui bahwa ada siswa-siswa nakal yang bekerja dan ada dalam daftar para penganggur dan, karenanya, menerima tunjangan pengangguran. Tulis sebuah program yang menemukan bajingan pertama - program yang namanya pertama dalam urutan abjad.SolusiBiarkan saya, j, k menjadi koordinat dalam file r, s, bI, j, k: = 0,0,0; - mulai dari awalSejauh ini (r (i) <> s (j) dan s (j) <> b (k) dan b (k) <> r (i)) ulangiawalJika r (i) <s (j ) lalu i: = i +1;Jika s (i) <b (j) maka j: = j + 1;Jika b (i) <r (j) maka k: = k + 1;endi, j, k berisi koordinat jahat dalam file mereka.Tetapi betapa elegannya itu dalam notasi Dijkstra:i, j, k: = 0,0,0;lakukan R (i) <S (j) i: = i + 1; S (j) <B (k) j: = j + 1; B (k) <R (i) k: = k + 1;od{i, j, k adalah koordinat yang diinginkan}Di mana simbol mengidentifikasi penjaga (R (i) <S (j), dll.)Sangat disayangkan bahwa notasi ini tidak termasuk dalam bahasa.Perumpamaan tentang toilet di keretaSuatu ketika ada negara tertentu di mana setiap gerbong dibuat dengan toilet. Tetapi kemudian seorang ekonom muncul dan memutuskan untuk menabung dengan menyediakan separuh gerbong dengan toilet. Jadi mereka mulai melakukannya. Tetapi mereka lupa untuk memperingatkan tentang stasiun penyortiran ini, di mana kereta akan pergi. Akibatnya, beberapa kereta berakhir tanpa toilet. Untuk memperbaiki situasi, setiap gerbong dilengkapi dengan tulisan yang mengatakan apakah ada toilet di dalamnya dan menginstruksikan skrup: "Harus ada sekitar setengah dari toilet di kereta." Meskipun ini menyulitkan kehidupan trailer, mereka dengan jujur mengikuti instruksi. Namun, ada keluhan bahwa kadang-kadang toilet ada di separuh kereta. Untuk memperbaiki masalah ini, mereka merilis instruksi baru: "Ketika menggandeng, gerbong alternatif dengan toilet dan tanpa mereka." Ini menambah pekerjaan trailer, tetapi mereka, menggerutu, mulai dengan jujur mengikuti instruksi. Namun, ada keluhan itubahwa untuk mobil tanpa toilet, di samping itu, toilet itu bukan di awal setidaknya satu mobil tetangga, tetapi di ujung yang jauh dari keduanya. Ketidakadilan yang mengerikan bagi negara yang demokratis. Apa yang harus dilakukan
Setelah berpikir, para pejabat mengeluarkan instruksi tambahan “Untuk memberi toilet setiap gerobak dengan panah yang menunjukkan di mana toilet itu. Saat dipasangkan, semua panah dari gerbong kereta harus diarahkan satu arah. ” Trailer, meskipun mereka tidak memiliki turntable yang cukup, tegang dan mulai melakukan ini. Namun - oh horor! - penumpang mulai khawatir bahwa meskipun toilet terdekat tidak lebih dari sebuah mobil, tidak jelas toilet mana yang berada. Instruksi tambahan keluar: "Di setiap mobil tanpa toilet, gambarkan panah" Toilet "dan gabungkan mobil-mobil sehingga panah ini mengarah ke toilet terdekat." Trailer melolong: mereka tidak punya waktu. Dan kemudian ada seorang pria yang memperhatikan hal berikut: jika Anda mengaitkan mobil dengan toilet dan tanpanya sehingga toilet berada di tengah-tengah pasangan dan tidak pernah membuka pasangan,maka stasiun pemilahan akan menangani bukannya gerbong yang berorientasi N dengan pasangan gerbong simetris N / 2. Lalu semua masalah penyortiran menghilang. Benar, kereta harus mengandung jumlah gerbong yang genap. Tapi Anda bisa tahan dengan itu. Jadi mereka melakukannya.Klasik mengklaim bahwa meskipun komputer belum dikenal di negara itu, orang yang menemukan solusinya adalah seorang programmer sejati.Sortir CepatSetelah bubble sortir dan sortir, Shell adalah wahyu. Algoritma cantik dan hasil tercepat.Program yang mencetak teks itu sendiri.Ini adalah program yang hasilnya mencetak teksnya sendiri. Saya sangat kagum bagaimana seorang programmer muda menulis program ini dalam Pascal dalam seperempat jam.Catur pada beberapa barissaya dikejutkan oleh program, sekitar lima puluh baris di C, yang bermain catur dengan baik. Mungkin ada beberapa pernyataan dalam satu baris.Kasing
Entri Polandia
Itu sudah lama sekali. Kami sedang mengembangkan sebuah proyek di Belpromstroibank Exhibition Centre untuk memelihara data proyek-proyek konstruksi di republik ini. Generator laporan diplot. Setiap grafik dapat didefinisikan oleh rumus aritmatika apa saja. Bagaimana cara menghitungnya? Keputusan dibuat bahwa pengguna harus mengisi formulir khusus di mana ia sendiri mengurangi rumus menjadi elementer. Misalnya, rumus r = (a + b) / (cd) didekomposisi sebagai berikut: 1) x = a + b, 2) y = cd, 3) r = x / y. Jadi mereka melakukannya. Kami berlari. Proyek sedang dilaksanakan. Setiap hari, lusinan laporan dicetak pada puluhan kilogram kertas Finlandia berlubang. Bos sedang memikirkan pengembangan lebih lanjut dari proyek. Lambat laun, ia mendapat gagasan bahwa dekomposisi formula apa pun dapat dilakukan oleh mesin itu sendiri. Dengan demikian, pengguna menghilangkan pekerjaan buruk - dekomposisi rumus (menguraikannya menjadi urutan yang sederhana).Muncul ide untuk mempromosikan formula menjadi catatan bebas-braket. Selanjutnya muncul ide tumpukan. Dan kemudian saya ingat bahwa saya membaca di suatu tempat tentang rekaman ungkapan Polandia. Saya menemukan sebuah buku dan melihat bahwa bos saya sendiri datang dengan ide catatan Polandia (atau, dengan kata lain, postfix) dan setumpuk. Semua ini akan menyenangkan jika bukan karena penemuan sepeda. Bagaimanapun, semua ini harus diketahui oleh seorang programmer. Tetapi baik dia dan saya adalah amatir - alien dari profesi lain ... Sayangnya, ternyata pro kami (yang lulus dari BSU matfak dan bekerja di Computer Research Institute) tidak mengetahui hal ini. Jadi di sini bahkan lebih menyedihkan.Bagaimanapun, semua ini harus diketahui oleh seorang programmer. Tetapi baik dia dan saya adalah amatir - alien dari profesi lain ... Sayangnya, ternyata pro kami (yang lulus dari BSU matfak dan bekerja di Computer Research Institute) tidak mengetahui hal ini. Jadi di sini bahkan lebih menyedihkan.Bagaimanapun, semua ini harus diketahui oleh seorang programmer. Tetapi baik dia dan saya adalah amatir - alien dari profesi lain ... Sayangnya, ternyata pro kami (yang lulus dari BSU matfak dan bekerja di Computer Research Institute) tidak mengetahui hal ini. Jadi di sini bahkan lebih menyedihkan.Sayangnya, menurut saya situasi ini tidak hanya dalam pemrograman. Kami dirawat oleh dokter tiga arah, pembangun tiga arah sedang membangun, dan guru tiga arah mengajar. Kami memiliki "siswa yang tidak belajar, tetapi hanya bosan belajar." Dan kemudian para ahli amatir keluar. Akibatnya, kita memiliki banyak orang bodoh yang tidak berpendidikan, banyak orang bodoh yang berpendidikan, banyak orang pintar yang tidak berpendidikan, tetapi sangat sedikit orang yang pintar dan berpendidikan.Sedikit tentang amatirisme. Setelah datang untuk bekerja untuk kami, ketua (kami akan memanggilnya A.M.) memutuskan untuk mengganti kepala programmer. Jadi saya dianggap sebagai penantang. Sepertinya wawancara yang bagus sedang berlangsung, tetapi pengujian sebenarnya sedang berlangsung. Jadi saya ditanya pertanyaan, "Bagaimana akhir file ditentukan secara fisik?" Sayangnya, saya tidak tahu ini dan menjawab bahwa mereka berkata, mengapa saya harus tahu jika bahasa tersebut memberi saya situasi EOF dan tidak masalah bagaimana itu diterapkan. Seperti yang K. Prutkov katakan: "... Kostaki benar, saya benar." Tetapi sebagai kepala programmer, saya diretas. Namun, saya ditawari untuk memimpin para direktur. (Kembali ke awal cerita dan, mengingat klasik, kita dapat mengatakan - "mimpi si idiot menjadi kenyataan"). "Memperhatikan pandangan dunia yang luas," seperti kata A.M. Jadi domba dipisahkan dari kambing - generalis dari spesialis. Dan selanjutnya A.M. Terampil menangani personil.Jadi pendekatan saya untuk masalah “top down - from problem to machine” mendominasi dan mendominasi, dan kolega saya memiliki kebalikan “bottom up - from machine to problem”. A.M. segera membawa kami ke berbagai kutub. Seorang kolega mulai bekerja pada driver perangkat input data tentang situs konstruksi, dan saya sedang mengerjakan model matematika untuk menerima laporan tentang status situs konstruksi. Dalam proyek-proyek lain, saya menemukan yang sebaliknya dengan manajer lain. Akibatnya, satu berbicara tentang bit, dan yang kedua tentang integral dan tidak saling memahami.Dalam proyek-proyek lain, saya menemukan yang sebaliknya dengan manajer lain. Akibatnya, satu berbicara tentang bit, dan yang kedua tentang integral dan tidak saling memahami.Dalam proyek-proyek lain, saya menemukan yang sebaliknya dengan manajer lain. Akibatnya, satu berbicara tentang bit, dan yang kedua tentang integral dan tidak saling memahami.Jadi saya menjadi direktur direksi. Dan diprogram, tentu saja. Dan para programmer dipimpin oleh orang lain, seorang pro. Kami telah menjadi teman baik. Dan saya menerima dari dia karakterisasi yang menyanjung dan ironis dari "seorang spesialis dalam masalah yang tidak pasti" mengakui fakta bahwa saya dapat membawa masalah yang paling dangkal ke dasar matematika dan memberikannya solid, bahkan jika pada dasarnya itu bisa menjadi gertakan. Warisan fisikawan teoretis terpengaruh.Pada contoh A.M. Saya melihat bahwa sebuah proyek adalah produk dari kecerdasan yang tidak begitu banyak .Dijebak dengan hormat kepada koki, kami bahkan mengumpulkan frasa-frasanya.Contoh:
" Dari dan ke " - tidak ada yang perlu dipikirkan hanya tentang luka Anda, Anda perlu melihat seluruh proses." To Bitik " - pendekatan yang dangkal dan dangkal tidak akan berfungsi di sini." Menggulung lengan baju Anda " - tidak ada yang gratis, bekerja tanpa jaring.“ Begitukah? "- Apakah kamu berbicara omong kosong, saudara?Catatan-catatan ini diulangi dengannya setiap hari. Tapi di A.M. dan lebih banyak sifat tidak menyenangkan. Dia sangat menyukai brainstorming di hari libur. Liburan Pengaturan meja selesai, sampanye tidak terbuka - dan kemudian menunggu telepon dari AM. Itu benar, bel. - "Lalu aku punya beberapa ide. Saya mengusulkan untuk membahasnya. " Dan - liburan selamat tinggal.Seekor ular mengisi semua ruangSegera setelah layar muncul, permainan visual muncul. Salah satu yang pertama adalah ular yang menangkap ekornya. Ular harus dituntun, menghindari rintangan acak, memberikan perintah ke kiri / kanan. Ular itu memanjang sepanjang waktu, sehingga ruang yang tersisa lebih sedikit. Dan kemudian saya punya tugas. Apakah mungkin untuk memilih rute ular sehingga memenuhi seluruh ruang layar. Setelah berpikir beberapa jam, saya menemukan rute yang tepat. Ayo pergi makan siang. Saya mengantri tugas ke rekan saya. Dan yang mengejutkan saya, kami tidak punya waktu untuk menuangkan yang pertama, karena ia memecahkan masalah (meskipun garisnya panjang, tetapi tidak selama beberapa jam). Setelah memikirkan kasus ini, saya mulai menghibur diri dengan fakta bahwa, keinginan untuk makan merangsang kecerdasan.Frasa klasik
Beberapa frasa berarti volume klasik biaya biasa-biasa saja. Berikut adalah beberapa pernyataan yang telah mendefinisikan seluruh area pemrograman.Brooks :- Di belakang penguasaannya adalah kecerdikan, yang melaluinya program yang ekonomis dan cepat muncul. Hampir selalu, ini adalah hasil dari terobosan strategis, bukan keterampilan taktis. Kadang-kadang terobosan strategis seperti itu adalah sebuah algoritma, seperti, misalnya, transformasi Fourier cepat yang diusulkan oleh Cooley dan Tukey, atau penggantin2perbandingan pada n * log (n) saat menyortir.
Lebih sering, terobosan strategis terjadi sebagai akibat dari penyajian data atau tabel. Inti dari program ada di sini. Tunjukkan pada saya diagram alur tanpa menunjukkan tabel, dan saya akan tetap tersesat. Tunjukkan pada saya meja Anda, dan diagram alur kemungkinan besar tidak akan dibutuhkan: mereka akan terlihat jelas .
- Presentasi data adalah inti dari pemrograman.
- Membiasakan diri dengan persyaratan akurasi yang sempurna, menurut pendapat saya, yang paling sulit dalam proses belajar pemrograman.
- Setelah proyek akhirnya diadopsi, itu menjadi usang dalam arti konsepnya.
Wirth :- Program = algoritma + data.
- () , , .
- . , .
- , , .
- , (, ), . , .
- , , , , . , . , . .
- ( ) ; , . , .
- , , . , :
- ,
- dekomposisi yang dipilih memungkinkan Anda untuk mendapatkan instruksi dalam arti lebih dekat dengan bahasa di mana program akhirnya akan dirumuskan.
SUN :Jaringan adalah komputer.Ide bagus
Oleh karena itu, idealnya, program terdistribusi, yang dipertimbangkan pada tingkat bahasa pengembangan, tidak boleh berbeda dari yang satu. Pangkalan terdistribusi pada tingkat penggunaan tidak boleh berbeda dari yang tidak terisi. Distribusi harus dilaksanakan oleh OS. Distribusi dan pengaturan layanan juga seharusnya tidak menjadi perhatian pemrogram aplikasi.Dijkstra :- - , ( , , , ).
- -: – .
- ? : “ : . , , , – , ,
… , . , , , “” . – … , ,
– ”.
— 1/106 — 104 . . , -, .- .
, , , , , , . , , , . , , , . , , , . , , . , – , . , , , , . - … . : “” ? : ””, , ; : ””, — . , , – – , . , , , . : , .
- , .
- , , « » — ! — « ». - ,
, : « , , , , «» , ?» , , -, ." , , , , . - , , ( ), , « ». ; , , , « », . . , ,
.
Tidak tahu :Bahasa pemrograman yang paling penting adalah bahasa ibu. Program dalam bahasa formal adalah terjemahan ide yang diformulasikan dalam bahasa asli. Karena itu, mereka yang hadir dengan kelam dalam bahasa asli mereka juga akan menggelapkan dalam formal.Pemasaran dan programmer
Saya menyiapkan materi promosi untuk pameran di proyek saya. Pemasar perusahaan saya menyerang materi iklan saya dengan serangan seperti itu:- Materi ini memiliki banyak negatif (deskripsi kekurangan proyek yang ada), dan ini membawa energi negatif
- Ukuran selebaran tidak sesuai dengan rasio emas.
Dan hal lain seperti itu.Tetapi para pemasar ini tidak memperhatikan tidak adanya telepon, alamat dan informasi tentang perusahaan di selebaran, yang oleh mantan atasan saya menarik perhatian ketika saya berkenalan dengan materi saya di pameran. Saya mulai berkata: Tuan-tuan, saya berikan Anda deskripsi teknis produk, dan Anda, pemasar, berikan deskripsi pasar. Dimana disana Mereka hanya setuju untuk mengkritik. Akibatnya, ia sampai ke kepala perusahaan. Dia mengatakan kepada saya: taat pada pemasar, setelah semua, dia lulus dari ekonomi dengan pujian. Saya: dan saya lulus dari BSU dengan pujian. Kemudian koki berkata: "Kalian siswa yang hebat mengerti dirimu, dan aku tidak akan membahas pertengkaranmu."Saya terkesan dengan ini dalam pemasaran (secara umum, dan tidak dalam pemasaran perusahaan). Ini adalah keajaiban nama. Setiap orang perlu memberikan setidaknya fakta yang signifikan nama dan mungkin singkatan nyaring. Ini sudah menjamin bahwa Anda tidak mengabaikan fakta ini sendiri. Dan kemudian Anda harus mencocokkan namanya. Namanya adalah penerapan prinsip "Membagi dan menaklukkan." Saat kami memberi nama, kami menyoroti subjeknya. Berapa banyak klaim hak cipta seperti: "kami melihat ini, tetapi kami tidak mencantumkan fakta ini dan tidak memberikannya nama." Itu intinya! Kemudian saya memahami pusaran OLE -> OCX -> ActiveX -> COM ->?; Dan situs -> portal ->? .. Nah, apa yang bisa kita katakan tentang interaksi bisnis-ke-bisnis, tetapi ketika kita mengatakan B2B (Bisnis ke Bisnis) - ini adalah istilah dan, oleh karena itu, ada sesuatu di baliknya, walaupun sebenarnya ada pada kenyataannya, mungkin tidak ada apa-apa, tetapi hanya sebutan.Begitu singkatan ERP muncul, begitu banyak pengembang mulai mempresentasikan perkembangan mereka sebagai ERP ... Fashion untuk istilah adalah hal yang kuat.Dalam hal ini, berikut ini ditarik kembali. Ketika partai itu mengizinkan sibernetika, sebuah perdebatan dimulai tentang apa yang disebut apa yang sekarang disebut "komputer". "Kalkulator", "TsAM", "Komputer" ... - semuanya tidak berjalan. Bahasa kita yang hebat dan perkasa menyelamatkan "Komputer" sebelum Amerikanisme. Menurut pendapat saya, ini adalah manifestasi dari inferiority complex di Barat. Dan, saya harus mengatakan, sayang sekali, kompleks yang sepenuhnya dibenarkan.Tentang integrasi
Saya melihat banyak implementasi sistem perbankan dan, hampir selalu, mereka disebut-sebut sebagai sistem terintegrasi. Tapi sungguh, mereka tidak pernah seperti itu. Saya pikir sistem yang benar-benar terintegrasi belum datang. Sistem seperti itu harus memiliki model informasi tunggal, model objek tunggal, model fungsional tunggal, konsep tunggal dan arsitektur: integrasi harus dicapai melalui data, objek, fungsi, peristiwa, antarmuka. Saya belum melihat ini.Yang paling
Tugas yang paling menarik
Ini adalah proyek analisis bisnis. Apa yang bisa menghibur kebanggaan sebagai kesadaran akan fakta bahwa TK menentukan dirinya sendiri, membuat produksi sendiri, model informasi sendiri, model objek sendiri, dan selain itu Anda juga memprogram. Tugas ini menarik karena kebaruan dan luasnya. Perbatasannya tidak terlihat.Tantangan terbesar
Proyek kolektif terbesar adalah Paspor Konstruksi dari semua Belarus. Proyek ini diimplementasikan pada assembler komputer UE. Subjek area - data pada semua proyek konstruksi di Belarus. Pengguna sendiri mengatur struktur dan isi laporan konstruksi.Proyek individu terbesar adalah Business Intelligence. Subjek area - analisis masa lalu, saat ini, yang direncanakan dan diperkirakan kondisi bisnis. Alat: pengurai, pembanding, skenario simulasi, deret waktu, hipotesis statistik. Bahasa: Delphi, C #.Tantangan paling mencolok
Ini adalah pengantar untuk rekursi pertama. Saya sangat terkesan dengan solusi masalah menara Hanoi menggunakan rekursi - pengurangan untuk masalah yang sama, tetapi dari dimensi yang lebih rendah, sehingga solusinya jelas untuk dimensi kecil. Masalah delapan ratu juga sangat mengesankan.Buku yang paling mencolok
Dahl, Dijkstra, Hoar. Pemrograman struktural.Dijkstra. Disiplin pemrograman.Kasus yang paling konyol
Kami mengembangkan proyek di Kobol untuk EC-1020. Saya seorang programmer pemula. Ada kebutuhan untuk program dispatcher yang memanggil program tertentu, tergantung situasinya. Program di Kobol tidak dapat diunduh oleh orang lain (atau saya tidak tahu bagaimana melakukan ini). Penting untuk menulis assembler (yang kita tidak tahu), atau untuk melakukan sesuatu yang lain. Dan kemudian mereka menemukan ini berbeda - ini adalah bahasa manajemen pekerjaan (JCL) dari sistem operasi DOS.Ada yang namanya SYSIN (perangkat input logis), SYSRDRR (perangkat input directive logis JCL), dll. Mereka dapat dipindahkan pada saat runtime. Karena itu, setelah menyiapkan sekelompok SYSRDR untuk setiap cabang yang memungkinkan, pada prinsipnya Anda dapat menyelesaikan tugas. Dan kami menghabiskan banyak upaya untuk melakukan ini. Dan semua, tentu saja, sia-sia. Setelah mempelajari Assembler, kami mendapatkan segalanya, dan setelah menghabiskan banyak upaya dengan JCL, bahkan setelah mencapai hasil, kami tidak mendapatkan sesuatu yang baru. Anda harus memilih bukan dari apa yang lebih dekat, tetapi apa yang akan membawa lebih banyak manfaat secara umum. Omong-omong, DOS digantikan oleh OS / 360 dan bahwa JCL adalah sesuatu dari masa lalu. Tetapi datang bahkan lebih menggoda, tetapi kesalahan seperti itu belum terulang. Sulit membuat senjata dari katapel.Paling lucu
Pada awal "mengetuk," produk dimasukkan ke dalam uji coba menggunakan contoh uji. Kasus uji adalah tes global yang disusun oleh para ekonom. Hasil dari rangkaian produk biasanya adalah tabulograms - laporan tentang keadaan masalah yang diselesaikan, pada berbagai tahap solusinya. Tabulagram diperiksa terhadap contoh kontrol dan jika bertepatan, maka produk diterima untuk operasi percobaan. Tapi proyeknya belum siap. Apa yang harus dilakukan
Solusinya sederhana. Program ditulis yang menghasilkan tabulagram di dahi. Pada pengiriman, mereka mulai. Dan Pelanggan yang tidak berpengalaman (dan siapa yang saat itu berpengalaman?) Menandatangani sertifikat penerimaan untuk operasi percobaan."Jika Anda bisa tahu, lalu mengapa menunjukkan" - seorang programmer terkasih menjawab dengan ungkapan seperti itu ketika, setelah sebuah pertunjukan menarik dari program yang ia buat, yang terakhir jatuh pada awal acara dan ia beralih dari menunjukkan ke menceritakan.Sebuah proyek sedang dikembangkan - "Business Intelligence". Ini dikembangkan di bawah NT. Dan sekarang kita perlu mendemonstrasikan sistem di bank. Kami memutuskan untuk melakukannya di laptop. Windows 98 sudah berdiri di sana. Kami menempatkan, mengkompilasi ulang, menjalankan - semuanya baik-baik saja, kecuali satu: awal periode didirikan pada tahun 1898. Kami mulai curiga bahwa konteks yang berisi tanggal diekstraksi secara tidak benar. Konteks diambil oleh kode pengguna, yang diambil dengan memanggil fungsi GetUserName dari Windows API. Kami mulai curiga bahwa fungsi ini tidak berfungsi dengan benar. Kami mengatur titik pengintai dan menjalankan debugger. Semuanya baik-baik saja dan program bekerja dengan baik dan tanggalnya normal. Mereka menghapus semuanya secara kebetulan. Saat itu malam, dan kami, senang, akan pulang. Besok di bank. Pagi berikutnya kami menghidupkan - lagi situasi yang sama dengan tanggal. Kami mengaktifkan parser di debugger - semuanya baik-baik saja.Nah, situasi dalam mekanika kuantum mudah: ketika mereka tidak memata-matai partikel, mereka mengganggu gelombang, dan ketika mereka memata-matai mereka, mereka adalah partikel. Jadi kami tidak menerima jawaban. Dan agar semuanya berjalan dengan baik, kami “pena” memasukkan data yang benar dan demonstrasi berhasil.Nah, dan satu lagi kasus iblis. Kami mengembangkan proyek analitik bersama dan oleh karena itu menggunakan alat untuk mendukung kerja tim pada proyek - MS SourceSafe. Produk ini mendukung beberapa versi historis. Dan di sini saya berulang kali menemukan bahwa, setelah memperbaiki beberapa cabang penting, setelah beberapa waktu saya perhatikan bahwa versi yang lama ada di sana, tetapi tidak ada koreksi. Dan begitulah diulang beberapa kali. Saya menghubungkan semuanya dengan buta huruf. Tapi, produk seperti apa yang begitu kejam bagi mereka yang buta huruf?Hampir seperti filsafat
Bagaimana cara menggambarkan kemampuan intelektual suatu program, komputer dengan ukuran memori tetap? Jelas bahwa mereka bahkan tidak dapat mengingat jumlah yang cukup besar. Jadi apa - kita, juga, tidak dapat mengingat dan menuliskan jumlah yang cukup besar. Tetapi kita tidak menganggap diri kita sebagaimakhluk non-intelektual. Jadi di mana definisi formal intelijen? Saya pikir ini adalah salah satu masalah mendasar. Bagaimana menggambarkan ukuran kecerdasan suatu sistem dengan parameter eksternal yang diberikan - memori? Bagaimana suatu program dapat memahami dirinya sendiri - batas pengetahuan diri? Penggunaan makro - program yang memodifikasi diri mereka sendiri, menimbulkan pertanyaan: bisakah program tumbuh lebih bijak?, Di mana batas kecerdasannya?Seperti sebelumnya, pandangan dunia ditentukan oleh ilmu alam, jadi sekarang semakin ditentukan oleh Ilmu Komputer.Maksud saya bukan pemrograman primitif, tetapi ilmu pemrograman. Begitu banyak masalah filosofis yang paling abstrak menjadi sangat konkret ketika dilihat dari sudut pandang komputer. Pertimbangkan contoh ini. Bagaimanapun, program makhluk cerdas dapat disimulasikan di komputer. Anda dapat mensimulasikan reproduksi, seleksi, keturunan, ruang, waktu ... Hasilnya adalah dunia intra-komputer. Dan di sini makhluk intra-komputer (softhomo) tinggal di sana, berjuang untuk sepotong roti, berbicara, berfilsafat dan cepat atau lambat berpikir: apakah ada tuhan di dunia? Apa yang utama: materi atau kesadaran? Apakah ada hal-hal dalam diri Anda? Apakah kamu tahu dunia? Ada solipsist dan menyatakan: "seluruh dunia hanya ada dalam imajinasiku." Materialis lokal mengangkat lolongan dalam hubungan ini. Siapa yang benar Dari sudut pandang dunia mereka, kaum materialis benar, dan dari sudut pandang dunia kita, di luar mereka, solipsis benar. Bukti ini adalah mematikan komputer.Dan di dunia kita idenya telah lama disuarakan bahwa baik materialis dan idealis benar. Dalam fisika, pemikiran dikotomis primitif seperti "partikel atau gelombang" - "Dan partikel dan gelombang" telah lama diatasi. Demikian juga dalam filsafat. Ketika ditanya apa kebenaran yang dalam, Bora menjawab: "Kebenaran yang dalam adalah kebenaran yang demikian, penyangkalannya juga merupakan kebenaran yang dalam." Penyangkalan kebenaran 2 * 2 = 4 tidak dalam, yang berarti kebenaran ini sendiri tidak dalam. Tetapi penolakan terhadap kebenaran “materi adalah yang utama” adalah dalam, sebagaimana seluruh perkembangan filsafat mengatakan, ketika kaum materialis Leninis hanya mengkritik inovasi idealis tanpa mengedepankan sesuatu yang baru: mereka berkata “Ya, mereka sendiri tidak mengerti apa yang mereka hasilkan. Tapi begitu kita memberikan interpretasi materialistis, maka semuanya akan menjadi benar-benar ilmiah. ”Contoh - sibernetika, semiotika, interpretasi Kopenhagen tentang mekanika kuantum, dll.Dan inilah yang terjadi: tidak peduli apa yang diciptakan softhom, tidak peduli seberapa keras intelek mereka, mereka tidak akan pernah melihat dan mendengar dunia kita di luar mereka - seorang programmer, misalnya (jika programmer tidak membuka dialog secara eksplisit). Dan bagi mereka, programmer adalah dewa, dan dunia kita adalah sesuatu bagi mereka dalam diri mereka sendiri, dan tidak ada dunia kita yang tidak dapat mereka ketahui, dan pengisian intelektual mereka yang dibuat oleh programmer adalah pengetahuan apriori. Tampaknya Kant, yang berbicara tentang semua ini dalam filsafatnya, benar-benar tahu banyak tentangnya. Konsep paling abstrak Kant tentang "benda-dalam-dirinya", "transendental", "transendental", "pengetahuan sintetik apriori" menerima hal-hal yang cukup dimengerti dalam interpretasi ini. Untuk dunia yang ditunjukkan, seluruh dunia kita adalah hal-hal dalam dirinya sendiri, pengetahuan sintetik apriori adalah semua yang dimasukkan programmer ke dalam kecerdasan dunia intra-komputer, pengetahuan transendental baginya adalah pengetahuan tentangbagaimana seorang programmer menciptakan dunia komputer ini.Dalam hal ini, Anda mungkin bertanya pada diri sendiri: Atau mungkin bagi sebagian dari kita kita adalah dunia komputer dan Tuhan adalah seorang programmer? Ngomong-ngomong, apa yang disebut prinsip antropik dirumuskan dalam fisika. Ternyata semua hukum fisika diatur sedemikian rupa sehingga mereka akan mengubahnya sedikit dan seseorang tidak akan muncul. Ubah sedikit konstanta gravitasi, atau muatan elektron, atau konstanta Planck, dan semuanya akan berhasil sehingga Matahari tidak menyala, atau terlalu panas. Artinya, semuanya dilakukan agar seseorang muncul. Benar, banyak yang mengatakan bahwa ini tidak perlu dikatakan: dunia yang berbeda dapat muncul jutaan kali tanpa seseorang, tetapi jika seseorang telah muncul, maka, secara alami, dunia tempat ia muncul dirancang sedemikian rupa sehingga ia muncul. Setelah traktor meninggalkan conveyor, wajar jika conveyor dirancang sehingga traktor muncul. Tapi tetap saja, masih ...Jadi, pemrograman memungkinkan Anda melihat masalah worldview secara segar. Ini secara fundamental dapat mengubah pandangan dunia itu sendiri.Terakhir
Dari seluruh perjalanan hidup saya, saya telah mengambil kebijaksanaan dangkal: " Satu pikiran tidak cukup untuk bertindak dengan cerdas ." Berapa banyak wanita pintar yang berada di jalur kita - banyak. Dimana mereka? Apa lagi yang dibutuhkan untuk sukses? Tapi Tuhan mengenalnya. Dan keberuntungan, uang, dan arogansi duniawi. Sayangnya, tiga penguasa yang lalim memerintah segalanya. Pria pintar juga meragukan diri mereka sendiri. Mereka memiliki kecerdasan yang cukup, tetapi tidak cukup.Keluhan bangsa Babilonia kuno “Masa-masa sulit datang, para dewa marah, anak-anak tidak lagi mematuhi orang tua dan semua orang ingin menulis buku” modernitas dimodifikasi: “ Masa-masa sulit datang, para dewa marah, anak-anak tidak lagi mematuhi orang tua dan semua orang ingin menulis buku, dan, celakalah, semua orang si bodoh ingin membuat situs / portal / blognya sendiri di Internete . "