কটলিন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং মেমোরি এ্যালোকেশনের জন্য এর নিজস্ব আর্কিটেকচার রয়েছে।
কটলিন কম্পাইলার বাইট কোড তৈরি করে এবং এই বাইট কোড JVM এর উপর রান করে। বাইট কোড হলো সোর্স কোড (কটলিন) থেকে লো-লেভেল কোডে কনভার্ট করা কোড যা ইন্টারপ্রেটর পড়তে পারে। বাইট কোড কে পোর্টেবল কোডও বলা হয়। জাভা ক্লাস থেকে জেনারেট করা বাইট কোড আর কটলিনের বাইট কোড একদম একই রকম। দুটোর ক্ষেত্রেই বাইট কোড রান হয় JVM এ। তাই এরা একটার সাথে আরেকটা যোগাযোগ করতে পারে। আর এজন্য একই প্রজেক্টে আপনি কটলিন ও জাভা ব্যবহার করলে কোন সমস্যা হয় না এবং জাভা ফাইলের কোড কটলিনে ও কটলিন ফাইলের কোড জাভায় কল করা যায় আর এই ফিচারকে বলা হয় interoperable. (অন্তর্চালিত)।
এবার আসি জাভাস্ক্রীপ্টে: যখন কটলিন জাভাস্ক্রীপ্ট টার্গেট করে তখন কটলিন কম্পাইলার কটলিন(.kt) ফাইলকে ES5.1 এ কনভার্ট করে এবং জাভাস্ক্রীপ্টের সাথে সামঞ্জস্যপূর্ণ (compatible) কোড জেনারেট করে। কটলিন কম্পাইলার LLVM এর মাধ্যমে প্লাটফর্ম অনুসারে কোড জেনারেট করতে পারে।