Saya membaca buku The Elements of Computing Systems: Membangun Komputer Modern dari Prinsip Pertama , yang memuat proyek-proyek yang mencakup pembuatan komputer dari gerbang boolean hingga aplikasi tingkat tinggi (dalam urutan itu). Proyek saat ini yang sedang saya kerjakan adalah menulis assembler menggunakan bahasa tingkat tinggi pilihan saya, untuk menerjemahkan dari kode perakitan Hack ke kode mesin Hack (Hack adalah nama platform perangkat keras yang dibangun pada bab-bab sebelumnya). Walaupun semua perangkat keras telah dibangun dalam sebuah simulator, saya telah mencoba untuk berpura-pura bahwa saya benar-benar membangun setiap level hanya menggunakan alat yang tersedia untuk saya pada saat itu dalam proses nyata.
Yang mengatakan, itu membuat saya berpikir. Menggunakan bahasa tingkat tinggi untuk menulis assembler saya memang mudah, tetapi untuk assembler pertama yang pernah ditulis (yaitu dalam sejarah), tidakkah perlu ditulis dalam kode mesin, karena hanya itu yang ada pada saat itu?
Dan pertanyaan yang berhubungan ... bagaimana dengan hari ini? Jika arsitektur CPU baru keluar, dengan set instruksi baru, dan sintaks perakitan baru, bagaimana assembler akan dibangun? Saya berasumsi Anda masih bisa menggunakan bahasa tingkat tinggi yang ada untuk menghasilkan binari untuk program assembler, karena jika Anda tahu sintaks dari bahasa assembly dan mesin untuk platform baru Anda, maka tugas menulis assembler sebenarnya hanyalah sebuah tugas analisis teks dan secara inheren tidak terkait dengan platform itu (yaitu perlu ditulis dalam bahasa mesin platform itu) ... yang merupakan alasan saya dapat "menipu" saat menulis peretas Hack saya pada tahun 2012, dan menggunakan beberapa yang sudah ada sebelumnya bahasa tingkat tinggi untuk membantu saya.