Jadual Kandungan
Apa itu Brainf ** k?
Kenapa? Kenapa?
Mengapa C?
Bagaimana?
Pemikiran terakhir
Rumah pembangunan bahagian belakang C++ Penterjemah terkecil yang pernah anda lihat

Penterjemah terkecil yang pernah anda lihat

Apr 04, 2025 am 07:12 AM
ai kenapa

Penterjemah terkecil yang pernah anda lihat

Pagi ini saya menulis penterjemah Brainf ** K C. Saya mengambil masa kira -kira sejam.

Kandungan keseluruhannya kurang daripada 50 baris kod C. Anda dapat melihatnya di sini.

Apa itu Brainf ** k?

Ini adalah bahasa pengekodan yang mendalam. Dicipta oleh pelajar Switzerland pada tahun 1993, hampir dianggap sebagai keperluan minimum untuk kesempurnaan Turing.

Ia juga merupakan salah satu bahasa Essolan yang paling terkenal.

Sintaks sangat mudah: hanya ada 8 aksara, dan selebihnya akan diabaikan.

 > [-] <.> [-] <....>> [-]  [-] <. .------------------->>> [-] <.><p>Tebak apa yang dilakukannya. Tebaknya.</p>
<p> Ini adalah dunia hello! program.</p>
<p> Pada asasnya, dalam Brainf ** k anda mendapat pelbagai 30000 bait dan kursor. Anda boleh menggunakan> dan <untuk memindahkan kursor. anda boleh mengubah suai memori menggunakan dan yang akan meningkatkan atau mengurangkan nilai dalam sel. membuat gelung akhirnya membaca satu bait sebagai input gunakan ..> Cetak nilai sel semasa</untuk></p>
<pre class="brush:php;toolbar:false"> >; Peningkatan kedudukan kursor
<p>Hampir semua perkara mengenai Brainf ** k.<br> Saya telah menulis lebih banyak program berfungsi sebelum ini di <em>Perhimpunan</em> .</p><h2 id="Kenapa-Kenapa"> Kenapa? Kenapa?</h2><p> Saya menulis pengkompil ini sepenuhnya kerana saya bosan dan saya dapati banyak jurubahasa jadi saya fikir dunia memerlukan pengkompil otak.</p><blockquote><p> Walau bagaimanapun, tidak ada yang menafikan bahawa jika anda mahukan pengkompil otak yang sangat baik, periksa yang satu ini.</p></blockquote><h3 id="Mengapa-C"> Mengapa C?</h3><p> Banyak sebab:</p>
Salin selepas log masuk
  • Saya mahukan lebih banyak latihan
  • Sangat pantas
  • Ia terutamanya mudah alih
  • Sangat biasa
  • Bagaimanapun, saya tidak memerlukan banyak kod.

Sebab terakhir: Integer melimpah. Sering kali, ini adalah perkara buruk yang dibenci oleh orang. Ini mungkin sebab mengapa ujian unit dicipta (uh). Tetapi Brainf ** k berbeza. Had atas nombor dalam pita memori adalah 255, dan jika ia melebihi ini, ia harus ditetapkan semula kepada 0. Juga, jika nilai di bawah 0, ia harus ditetapkan semula kepada 255. C akan melakukan ini sendiri; Saya tidak perlu menulis sebarang kod untuknya.

Bagaimana?

Gambaran keseluruhan tahap yang lebih tinggi:

  • Baca kod dari fail atau input standard ke memori
  • Tukar setiap aksara ke kod C
  • Kod c bercetak.

Ia membaca kod Brainf ** k dari fail ke dalam kod [].

Kemudian, ia menubuhkan program asas C:

 #include <stdio.h>
int main () {char t [30000] = {0}; int p = 0;
</stdio.h>
Salin selepas log masuk

Anda mungkin menyedari bahawa ia tidak mempunyai pendakap penutup. Itu kerana lebih banyak kod ditambah ke char [].

Jika anda ingin tahu, Char T [30000] adalah memori yang diberikan kepada anda. Saya menggunakan T sebagai singkatan pita, tetapi memendekkannya kerana program -program ini tidak sesuai untuk kebolehbacaan manusia.

Seterusnya, ia gelung melalui array kod, yang merupakan pelbagai aksara tunggal. Untuk setiap watak, ia menukarkannya ke kod C:

watak Menjadi
> p
p--
- T [P]-
t [p]
. Putchar (T [P])
, t [p] = getchar ()
[ Semasa (T [P]! = 0)
] }

Anda boleh menyemak perkara di atas untuk melihat simbol -simbol ini.

Nilai -nilai ini akan ditambah kepada output program, yang akan mengandungi kod C yang sah.

Akhirnya, tambahkan kod ini ke output akhir:

 kembali 0;}
Salin selepas log masuk

Program output berakhir di sini. Penerjemah kemudian mencetak kod ini ke output standard supaya pengguna dapat beroperasi seperti yang dia kehendaki.

Pemikiran terakhir

Saya mempunyai beberapa idea untuk penambahbaikan semasa menulis siaran ini. Saya tidak fikir saya boleh melakukan terlalu banyak perkara untuk menjadikannya lebih cepat, tetapi saya boleh melakukan sesuatu untuk menjadikannya lebih selamat dan lebih baik.

Anda boleh melihat kod akhir di sini.

Anda juga boleh membuat apa -apa sumbangan jika anda mahu.

Terima kasih kerana membaca!

Atas ialah kandungan terperinci Penterjemah terkecil yang pernah anda lihat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana cara menggunakan Perpustakaan Chrono di C? Bagaimana cara menggunakan Perpustakaan Chrono di C? Apr 28, 2025 pm 10:18 PM

Menggunakan perpustakaan Chrono di C membolehkan anda mengawal selang masa dan masa dengan lebih tepat. Mari kita meneroka pesona perpustakaan ini. Perpustakaan Chrono C adalah sebahagian daripada Perpustakaan Standard, yang menyediakan cara moden untuk menangani selang waktu dan masa. Bagi pengaturcara yang telah menderita dari masa. H dan CTime, Chrono tidak diragukan lagi. Ia bukan sahaja meningkatkan kebolehbacaan dan mengekalkan kod, tetapi juga memberikan ketepatan dan fleksibiliti yang lebih tinggi. Mari kita mulakan dengan asas -asas. Perpustakaan Chrono terutamanya termasuk komponen utama berikut: STD :: Chrono :: System_Clock: Mewakili jam sistem, yang digunakan untuk mendapatkan masa semasa. Std :: Chron

Platform perdagangan mata wang teratas yang manakah di dunia adalah versi terbaru dari Platform Perdagangan Top Top Top Platform perdagangan mata wang teratas yang manakah di dunia adalah versi terbaru dari Platform Perdagangan Top Top Top Apr 28, 2025 pm 08:09 PM

Sepuluh platform perdagangan cryptocurrency teratas di dunia termasuk Binance, OKX, Gate.io, Coinbase, Kraken, Huobi Global, Bitfinex, Bittrex, Kucoin dan Poloniex, yang semuanya menyediakan pelbagai kaedah perdagangan dan langkah -langkah keselamatan yang kuat.

Bagaimana untuk mengukur prestasi benang di C? Bagaimana untuk mengukur prestasi benang di C? Apr 28, 2025 pm 10:21 PM

Mengukur prestasi thread di C boleh menggunakan alat masa, alat analisis prestasi, dan pemasa tersuai di perpustakaan standard. 1. Gunakan perpustakaan untuk mengukur masa pelaksanaan. 2. Gunakan GPROF untuk analisis prestasi. Langkah -langkah termasuk menambah pilihan -pg semasa penyusunan, menjalankan program untuk menghasilkan fail gmon.out, dan menghasilkan laporan prestasi. 3. Gunakan modul Callgrind Valgrind untuk melakukan analisis yang lebih terperinci. Langkah -langkah termasuk menjalankan program untuk menghasilkan fail callgrind.out dan melihat hasil menggunakan kcachegrind. 4. Pemasa tersuai secara fleksibel dapat mengukur masa pelaksanaan segmen kod tertentu. Kaedah ini membantu memahami sepenuhnya prestasi benang dan mengoptimumkan kod.

Apakah sepuluh aplikasi perdagangan mata wang maya teratas? Kedudukan pertukaran mata wang digital terkini Apakah sepuluh aplikasi perdagangan mata wang maya teratas? Kedudukan pertukaran mata wang digital terkini Apr 28, 2025 pm 08:03 PM

Sepuluh pertukaran mata wang digital teratas seperti Binance, OKX, Gate.io telah meningkatkan sistem mereka, urus niaga yang pelbagai dan langkah -langkah keselamatan yang ketat.

Apakah platform perdagangan mata wang teratas? 10 pertukaran mata wang maya terkini Apakah platform perdagangan mata wang teratas? 10 pertukaran mata wang maya terkini Apr 28, 2025 pm 08:06 PM

Saat ini disenaraikan di antara sepuluh mata wang mata wang maya yang teratas: 1. Binance, 2 Okx, 3. Gate.io, 4. Perpustakaan duit syiling, 5. Siren, 6. Huobi Global Station, 7. Bybit, 8. Kucoin, 9.

Berapa bernilai bitcoin Berapa bernilai bitcoin Apr 28, 2025 pm 07:42 PM

Harga Bitcoin berkisar antara $ 20,000 hingga $ 30,000. 1. Harga Bitcoin telah berubah secara dramatik sejak tahun 2009, mencapai hampir $ 20,000 pada tahun 2017 dan hampir $ 60,000 pada tahun 2021. Harga dipengaruhi oleh faktor -faktor seperti permintaan pasaran, bekalan, dan persekitaran makroekonomi. 3. Dapatkan harga masa nyata melalui pertukaran, aplikasi mudah alih dan laman web. 4. Harga Bitcoin sangat tidak menentu, didorong oleh sentimen pasaran dan faktor luaran. 5. Ia mempunyai hubungan tertentu dengan pasaran kewangan tradisional dan dipengaruhi oleh pasaran saham global, kekuatan dolar AS, dan sebagainya. 6. Trend jangka panjang adalah yakin, tetapi risiko perlu dinilai dengan berhati-hati.

Bagaimana cara menggunakan aliran rentetan di C? Bagaimana cara menggunakan aliran rentetan di C? Apr 28, 2025 pm 09:12 PM

Langkah -langkah utama dan langkah berjaga -jaga untuk menggunakan aliran rentetan dalam C adalah seperti berikut: 1. Buat aliran rentetan output dan tukar data, seperti menukar integer ke dalam rentetan. 2. Memohon untuk berseri struktur data kompleks, seperti menukar vektor ke dalam rentetan. 3. Beri perhatian kepada isu -isu prestasi dan mengelakkan penggunaan aliran rentetan yang kerap apabila memproses sejumlah besar data. Anda boleh mempertimbangkan menggunakan kaedah tambahan std :: string. 4. Perhatikan pengurusan ingatan dan elakkan penciptaan dan pemusnahan objek stream rentetan yang kerap. Anda boleh menggunakan semula atau menggunakan std :: stringstream.

Cara Memilih Platform Perdagangan Bitcoin yang patuh dan selamat Cara Memilih Platform Perdagangan Bitcoin yang patuh dan selamat Apr 28, 2025 pm 05:42 PM

Apabila memilih platform perdagangan Bitcoin yang mematuhi dan selamat, anda perlu menilai lesen pengawalseliaannya, dasar KYC/AML dan langkah -langkah keselamatan, dan mengesyorkan tiga platform utama: Binance, OKX dan Gate.io.

See all articles