প্রকল্প সম্পর্কে
V একটি স্ট্যাটিক্যালি টাইপড, কম্পাইলড প্রোগ্রামিং ভাষা যা রক্ষণাবেক্ষণযোগ্য সফটওয়্যার তৈরির জন্য ডিজাইন করা হয়েছে। এর ঘোষিত লক্ষ্যগুলি হলো সরলতা, দ্রুত কম্পাইলেশন, C-এর সাথে তুলনীয় পারফরম্যান্স এবং নিরাপত্তা। কম্পাইলারটি নিজেই V-তে লেখা এবং সাধারণ হার্ডওয়্যারে এক সেকেন্ডেরও কম সময়ে বুটস্ট্র্যাপ করতে পারে।
প্রকল্পটি দ্বারা বর্ণিত মূল বৈশিষ্ট্যগুলি:
- সরলতা: ভাষাটি অল্প সময়ে শেখার উপযোগী করে তৈরি।
- দ্রুত কম্পাইলেশন: README-তে উল্লেখ করা হয়েছে একটি নির্দিষ্ট টেস্ট মেশিনে Clang ব্যাকএন্ডের সাথে প্রায় ১১০k লাইন/সেকেন্ড এবং নেটিভ ও tcc ব্যাকএন্ডের সাথে প্রায় ৫০০k লাইন/সেকেন্ড।
- সেলফ-হোস্টিং: V দ্রুত নিজেকে কম্পাইল করে এবং মূল ব্যাকএন্ডটি মানব-পাঠযোগ্য C নির্গত করে।
- নিরাপত্তা বৈশিষ্ট্য: null নেই, গ্লোবাল নেই, ডিফল্টভাবে ইমিউটেবিলিটি, এবং অনির্ধারিত আচরণ দূর করার কাজ।
- মেমরি ব্যবস্থাপনার বিকল্প: ডিফল্টভাবে গারবেজ কালেকশন, সাথে ম্যানুয়াল (`-gc none`), অ্যারেনা অ্যালোকেশন (`-prealloc`), এবং অটোফ্রি (`-autofree`) মোড।
- C-to-V অনুবাদ, একটি DOOM অনুবাদ ডেমো দিয়ে প্রদর্শিত।
- হট কোড রিলোডিং।
- বিল্ট-ইন ORM এবং একটি বিল্ট-ইন ওয়েব ফ্রেমওয়ার্ক (veb)।
- C এবং JavaScript ব্যাকএন্ড, সাথে একটি REPL।
- ক্রস-প্ল্যাটফর্ম UI লাইব্রেরি এবং একটি বিল্ট-ইন গ্রাফিক্স লাইব্রেরি।
- সহজ ক্রস-কম্পাইলেশন, Alpine/musl Docker ইমেজের মাধ্যমে স্ট্যাটিক বাইনারি সহ।
ইনস্টলেশন মূলত সোর্স থেকে: রিপোজিটরি ক্লোন করুন এবং `make` চালান (Windows-এ `makev.bat`, BSD/Solaris-এ `gmake`)। বিল্ডটি একটি সামঞ্জস্যপূর্ণ সংস্করণ থাকলে বান্ডেল করা Tiny C Compiler ডাউনলোড করে। Docker এবং Alpine Dockerfiles-ও প্রদান করা হয়েছে। `v up` কম্পাইলার আপডেট করে এবং `v symlink` এটি PATH-এ যোগ করে।
Atom, CodeLite, Emacs, JetBrains, Sublime Text, Vim/Neovim, VS Code এবং Zed-এর জন্য এডিটর ও IDE সমর্থন উপলব্ধ, যেখানে v-analyzer ভাষা-সার্ভার ক্ষমতা প্রদান করে।
উদাহরণগুলির মধ্যে রয়েছে হ্যালো ওয়ার্ল্ড, ওয়ার্ড কাউন্টার, নিউজ ফেচার, টেট্রিস এবং ২০৪৮। sokol বা gg মডিউল ব্যবহার করে GUI এবং গেম উদাহরণগুলির জন্য অতিরিক্ত সিস্টেম ডেভেলপমেন্ট লাইব্রেরি প্রয়োজন। নেটওয়ার্কিং মডিউল (net.http, net.websocket) এবং `v install` বান্ডেল করা Mbed-TLS বা `-d use_openssl` এর মাধ্যমে সিস্টেম OpenSSL ব্যবহার করতে পারে। sync মডিউলটি libatomic-এর উপর নির্ভর করে।
README-তে উল্লেখ করা হয়েছে যে ভাষাটি প্রি-1.0 এবং এখনও পরিবর্তিত হতে পারে, সিনট্যাক্স পরিবর্তনগুলি মূলত vfmt দ্বারা পরিচালিত হয়। 1.0-এর পরে, প্রকল্পটি Go-এর মতো একটি ফিচার ফ্রিজের পরিকল্পনা করেছে, যেখানে শুধুমাত্র বাগ ফিক্স এবং পারফরম্যান্স উন্নতি থাকবে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.