Universitetda ancha qiziq o'tgan semestr tugay deb qoldi.
Ayniqsa Nand2Tetris loyihasidan foydalanilgan computer science kursi men uchun qiziq bo'ldi. Basic nand logic gatedan foydalanib qadamma-qadam butun boshli general-purpose (umumiy maqsadli) komputer qurish va o'sha komputer uchun avval assembler, keyin VM, OS va nihoyat yuqori darajali dasturlash tili ishlab chiqish jarayonini ko'rib chiqdik. Albatta juda soddalashtirilgan holatda.
Oxirgi haftada o'sha tildan foydalanib har xil kichkina dasturlar yaratib ko'rdik. Nand2Tetris loyihasida Tetris o'yini yozib ko'rsatilgan. Keyin professor qiziq savol berib qoldi: Bir semestr davomida nand'dan foydalanib Tetris qura oldik. Xo'sh, agar teskarisini, ya'ni Tetrisdan foydalanib nand gate qursakchi?
Umuman olganda, har qanday tabiiy yoki sun'iy olam o'z qonunlari asosida ma'lumot saqlaydi va modifikatsiya qiladi, shu jumladan Tetris o'yini ham. Demak agar bizga kerakli axborot saqlash shakli va modifikatsion operatsiyalarni o'sha olamning qoidalaridan foydalanib yoza olsak, teoritik jihatdan o'sha olamni komputer sifatida ishlata olish imkoniyati tug'iladi.
Bizga Tetris o'yini olamining qoidalari asosida ma'lumotni raqamli ko'rinishda saqlash va shu ma'lumot ustida ba'zi mantiqiy amallarni bajarish imkoniyatini beradigan qoidalar to'plamini berildi. Shu jumladan nand gateni ham tasvirlash imkoni tug'ildi. Qolgani yana o'sha klassik usulda soddaroq komponentlarning kombinatsiyasidan murakkabroq mexanizmlar qurish. Natijada Tetris o'yini olamida ishlaydigan general-purpose computer qura olamiz. Xo'sh, endi unga qanday dastur yozamiz? Albatta Tetris😂
Qisqasi, oddiy komputerda ishlayotgan Tetris o'yinining ichida qurilgan komputerga Tetris o'yinini yozib chiqishibdi. Ko'rib jinni bo'layozdim.
Post #417
1.68K
- 😁 15
- 👍 4