به عنوان چند کامپایلر آنلاین ++C میتوان به «Wandbox» و «Compiler Explorer» و «Coliru» و «Rextester» اشاره کرد. کامپایلرهای آنلاین برای کامپایل کردن قطعات کوچک کد، بسیار مفید هستند. زیرا در این صورت دیگر لازم نیست کامپایلر خاصی را تهیه کرده و بر روی کامپیوتر خود نصب کنیم. از طرف دیگر، کامپایلرهای آنلاین برای کار با جدیدترین ویژگیهای زبانهای برنامه نویسی، به اشتراکگذاری کدهای نوشته شده به صورت آنلاین و مقایسه نحوه کار کامپایلرهای مختلف، بسیار مناسب هستند. البته از همه این کامپایلرها برای اجرای کد استفاده نمیشود. بعضی از آنها فقط کدها را کامپایل کرده یا مانند کامپایلر آنلاین «Quick-Bench» با هدف بررسی سرعت اجرای کدها به کار برده میشوند.

در این مطلب از مجله فرادرس، ۱۲ کامپایلر آنلاین ++C را بررسی کردهایم. تمام کامپایلرها را یک به یک معرفی کرده و مهمترین ویژگیهای آنها را توضیح دادهایم. کامپایلرهای آنلاین بسیار کاربردی هستند. بهویژه، زمانی که به سیستم خود دسترسی نداریم یا باید تکه کد کوچکی را به سرعت اجرا کرده و نتیجه را بررسی کنیم.
فهرست کامپایلرهای آنلاین ++C
در فهرست پایین، مهمترین کامپایلرهای آنلاین ++C را معرفی کردهایم.
- وبسایت «Codiva.io»
- وبسایت کامپایلر «Paiza.IO»
- کامپایلر «Wandbox»
- سایت «Compiler Explorer»
- وبسایت «Coliru»
- کامپایلر آنلاین «Quick-Bench» برای ++C
- وبسایت «CppInsights» برای کامپایل کدهای ++C
- کامپایلر آنلاین «Rextester»
- وبسایت کامپایلر «Ideone»
- محیط کدنویسی آنلاین «C++ Shell»
- فضای کدنویسی در سایت «Tutorialspoint»
- کامپایلر آنلاین «Codepad»
بیشتر سایتهای معرفی شده در فهرست بالا علاوه بر ++C، از زبانهای دیگری هم پشتیبانی میکنند. اما در این مطلب به سایر زبانها و روش استفاده از آنها اشاره نکردهایم. این وبسایتها، بسته به کامپایلر مورد استفاده، از نسخههای استاندارد مختلف زبان ++C هم پشتیبانی میکنند.

++C زبان برنامهنویسی، زبانی چندکاره و عمومی است. این زبان در حوزههای مختلفی از علوم کامپیوتر استفاده میشود. همچنین از مفاهیم شیگرایی، وراثت و چندریختی هم پشتیبانی میکند. برای یادگیری این زبان میتوانید فیلم آموزش برنامه نویسی C++ همراه با گواهینامه را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
بیشتر کامپایلرهای آنلاین، بعد از کامپایل کردن، برنامه را اجرا هم میکنند. از این جهت، تفاوت زیادی بین آنها وجود ندارد. تفاوت بین کامپایلرها شامل موارد دیگری است. در فهرست زیر، بیشترین تفاوتهای بین کامپایلرهای مختلف را جمعآوری کردهایم.
- تخصیص پارامتر در زمان کامپایل با استفاده از «پرچمهای» (Flags) کامپایلر
- ارسال پارامترهای «خط فرمان» (Command Line) یا زمان اجرا به برنامه اجرا شده
- فراهم کردن دادههای ورودی برای بخش استاندارد ورود اطلاعات
در ادامه مطلب، تمام کامپایلرهای نام برده شده در ابتدای این بخش را یک به یک بررسی کردهایم.
وبسایت Codiva.io
وبسایت «Codiva.io» یکی از کامپایلرهای آنلاین ++C است. این وبسایت، مانند IDE معمولی به افراد برای ویرایش، کامپایل، اجرا و به اشتراکگذاری چندین فایل ++C کمک میکند. یکی از ویژگیهای خاص وبسایت Codiva.io آن است که کدها را بعد از چند ضربه به صفحه کلید به صورت خودکار کامپایل میکند. همچنین خطاهای موجود در کدها را به صورت هایلایت شده در میآورد. در نتیجه با سرعت بیشتری میتوان خطاها را پیدا کرد. مزیت دیگر این وبسایت آن است که میتوان از آن بر روی دستگاههای همراه نیز استفاده کرد.

ویژگیهای کلیدی سایت Codiva.io را در فهرست زیر نوشتهایم.
- Codiva.io از کامپایلر «Clang» استفاده میکند.
- به صورت منظم و در حین کدنویسی برنامه را کامپایل میکند.
- کاربران میتوانند از فلگهای کامپایلر استفاده کنند.
- امکان ارسال پارامترهای زمان اجرا وجود ندارد.
- امکان استفاده از دستور استاندارد «Stdin» برای دریافت اطلاعات وجود دارد.
- امکان به اشتراک گذاری کدهای نوشته شده با دیگران وجود دارد.
- لینک دسترسی به کامپایلر آنلاین Codiva.io: «+»
کامپایلر Paiza.IO
کامپایلر «Paiza.IO»، مانند یک «IDE» آنلاین عمل میکند. کاربران این وبسایت میتوانند کدها و فایلهای ++C را ویرایش کرده و سپس کامپایل و اجرا کنند. همچنین امکان اشتراکگذاری کدها نیز وجود دارد.
از جمله دیگر امکانات این سایت میتوان به ویرایش چند فایل به صورت همزمان، استفاده از منابع آنلاین در کدهای نوشته شده و ذخیره و اشتراکگذاری پروژهها با کمک گیتهاب نیز اشاره کرد.

ویژگیهای کلیدی سایت Paiza.IO را در فهرست زیر نوشتهایم.
- از کامپایلر Clang استفاده میکند.
- امکان کار بر روی چند فایل به صورت همزمان وجود دارد.
- کاربران میتوانند از فلگهای کامپایلر استفاده کنند.
- امکان استفاده از منابع آنلاین در کدها
- امکان ارسال پارامترهای زمان اجرا وجود ندارد.
- به شکل یکپارچه با گیتهاب کار میکند.
- امکان استفاده از دستور استاندارد «Stdin» برای دریافت اطلاعات وجود دارد.
- لینک دسترسی به کامپایلر آنلاین Paiza.IO: «+»
چگونه با کمک فرادرس ++C را یاد بگیریم؟
وبسایت فرادرس، منابع بسیار خوبی برای آموزش ++C تولید کرده است. فرادرس به عنوان تولید کننده آنلاین محتوای آموزشی تلاش کرده است تا مهمترین نیازهای افراد جویای کار و دانشجویان را شناسایی کند. سپس با توجه به آنها مطالب و فیلمهای آموزشی بسیار با کیفیتی تولید کرده است. ++C یکی از زبانهای برنامهنویسی چندمنظوره و عمومی است. این زبان در سطح وسیعی از علوم کامپیوتر استفاده میشود. زبان ++C از مفاهیم شیگرایی، وراثت و چندریختی هم پشتیبانی میکند. در بعضی از دانشگاهها ++C به عنوان اولین زبان برنامه نویسی به دانشجویان تدریس میشود.

بنابراین فرادرس، تصمیم گرفته است تا یکی از کاملترین مجموعه آموزشهای زبان برنامه نویسی ++C را به زبان فارسی تولید و منتشر کند. بعضی از برنامه نویسان شاغل در بخشهای صنعتی و بیشتر دانشجویان باید توانایی کار با زبان ++C را داشته باشند. در فهرست پایین، چند مورد از فیلمهای آموزشی ++C را معرفی کردهایم. در صورت تمایل به مشاهده سایر فیلمها بر روی تصویر بالا کلیک کرده و به صفحه اصلی این مجموعه آموزشی، هدایت شوید.
کامپایلر آنلاین Wandbox
«Wandbox» به خوبی تمام عملکردهای مورد انتظار از کامپایلرهای آنلاین را ارائه میدهد. برای مثال میتوان به پشتیبانی از چندین فایل مختلف و رایجترین کلیدهای میانبر در بین کد ادیتورهای معمولی اشاره کرد.
به غیر از کتابخانههای استاندارد، این کامپایلر شامل کتابخانهها خاصی مانند «Boost» و «Sprout» و «MessagePack» نیز میشود. برنامههای کامپایل شده در محیط Sandbox اجرا میشوند. این مسئله به ورود و خروج فایل به برنامه کمک میکند. در این محیط کدنویسی آنلاین، نسخههای «Snapshot» یا آزمایشی کامپایلرهای GCC و Clang نیز ارائه میشوند. در نتیجه کاربران میتوانند از آخرین ویژگیهای نسخههای بهروز ++C نیز استفاده کنند.
احتمالا زمانی که بخواهید برنامه کامپایل شدهای را اجرا کنید، Wandbox دقیقا همان کامپایلر آنلاینی است که باید به کار ببرید. زیرا در این کامپایلر، همیشه جدیدترین نسخههای Clang و GCC در دسترس هستند.
ویژگیهای کلیدی سایت Wandbox را در فهرست زیر نوشتهایم.
- Wandbox از کامپایلرهای «GCC» و «Clang» و «Zapcc» در نسخههای مختلف پشتیبانی میکند.
- با استفاده از منو کشویی یا نوشتن به شکل دستی میتوانیم فلگهای کامپایلر را انتخاب کنیم.
- از پارامترهای زمان اجرا پشتیبانی میکند.
- امکان استفاده از دستور استاندارد «Stdin» برای دریافت اطلاعات وجود دارد.
- لینک دسترسی به کامپایلر آنلاین Wandbox: «+»
سایت Compiler Explorer
«Compiler Explorer» یک IDE واقعی به همراه ویژگی منحصربهفرد است. زیرا این کامپایلر کدها را به کد اسمبلی تبدیل میکند. سپس کدهای اسمبلی تولید شده را در کنار کد ++C و به صورت رنگی مینویسد. در سایت Compiler Explorer امکان استفاده از منابع مختلف و بهکارگیری چندین کامپایلر در زمان یکسان، وجود دارد. بنابراین میتوانیم کدهای اسمبلی تولید شده توسط هر کدام از کامپایلرهای مختلف را با یکدیگر مقایسه کنیم، پرچمهای کامپایلر را بهینهسازی کنیم و چند ویژگی دیگر.
Compiler Explorer را میتوان در گیتهاب پیدا کرد. بنابراین با دانلود این ابزار میتوانیم آن را در کامپیوتر خود نصب کرده و به صورت آفلاین هم از آن استفاده کنیم.

البته کد کامپایل شده در این ابزار آنلاین، قابل اجرا نیست. این کامپایلر کاربری بسیار سادهای دارد. همزمان با کدنویسی به کاربر بازخورد میدهد. چنین رفتارهایی معمولا فقط از IDE-های قوی برمیآید.
ویژگیهای کلیدی سایت Compiler Explorer را در فهرست زیر نوشتهایم.
- این وبسایت از کامپایلرهای «GCC» و «Clang» و «MSVC» و «icc» و «Zapcc» و «PowerPC gcc» و «MSP430 gcc» و «MIPS gcc» و «elcc» و «AVR gcc» و «ARM64 gcc» و «ARM gcc» و «ARM CL» پشتیبانی میکند.
- امکان مشخص کردن فلگهای کامپایلر به صورت دستی وجود دارد.
- از پارامترهای زمان اجرا پشتیبانی نمیکند.
- امکان استفاده از دستور استاندارد «Stdin» برای دریافت اطلاعات وجود ندارد.
- لینک دسترسی به کامپایلر آنلاین Compiler Explorer: «+»
وبسایت Coliru
«Coliru» هم ادیتور کد است و هم در کنار خود خط فرمان ترمینال لینوکس را ارائه میدهد. در نتیجه میتوان گفت که Coliru یکی از ابزارهای قدرتمند در حوزه کامپایلرهای آنلاین ++C است. برای مثال، با صدور دستورات کامپایل و اجرای کدها در این سایت میتوانیم خروجی هر دو کامپایلر Clang و GCC را با هم مقایسه کنیم. البته از امکاناتی مانند ویرایش چند فایل به صورت همزمان در این وبسایت پشتیبانی نمیشود. اما تمام کدهایی که اشتراکگذاری میکنیم در بایگانی ذخیره میشوند. در نتیجه میتوانیم از روی این کدها چند فایل مختلف ایجاد کنیم.
همچنین، میتوانیم قبل از کامپایلکردن کدهایمان، همه یا بعضی از فایلها را با استفاده از «Curl» دانلود کنیم. Coliru از API-های عمومی هم پشتیبانی میکند. بعضی از سایتها از API-های این کامپایلر برای اجرای نمونه کدهای خود استفاده میکنند.
مشکل اصلی Coliru این است که همیشه از جدیدترین نسخه کامپایلرها استفاده نمیکند. همچنین مدیریت فایلها در این برنامه ساده نیست. به همین دلیل استفاده از Wandbox بهجای Coliru به نظر منطقیتر میآید. البته شاید این مشکلات برای همه افراد چندان مهم نباشند. در ضمن وجود ویژگیهایی مانند استفاده آزادانه از دستورهای شل، نقطه قوت مهمی برای Coliru است.
استفاده از کامپایلر آنلاین ++C یکی از بهترین روشهای برای غلبه بر محدودیتهای سختافزاری سیستمهای شخصی است. هر چند هنوز هم ممکن است که مجبور باشیم بعضی از کدها را بر روی کامپیوتر خودمان پیادهسازی کنیم. در نتیجه لازم است که مهارتهای مربوط به بهینهسازی کدهای ++C را بلد باشیم. در صورتی که نیاز به کسب اطلاعاتی در این زمینه دارید، پیشنهاد میکنیم مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
ویژگیهای کلیدی سایت Coliru را در فهرست زیر نوشتهایم.
- وبسایت Coliru از کامپایلرهای GCC و Clang پشتیبانی میکند.
- کاربران میتوانن فلگهای کامپایلر را به صورت دستی تعریف کنند.
- کاربران میتوانند پارامترهای زمان اجرا را خودشان تعریف کنند.
- با استفاده از شل لینوکس میتوان به برنامه در حال اجرا داده ارسال کرد.
- لینک دسترسی به کامپایلر آنلاین Coliru: «+»
کامپایلر آنلاین Quick-Bench برای ++C
«Quick-Bench» ابزاری است که با هدف تست سرعت قطعه کدهای ++C، طراحی شده است. این ابزار برای اندازهگیری زمان اجرای کدها از «گوگل بنچمارک» (Google Benchmark) استفاده میکند. Quick-Bench خروجی کدها را نشان نمیدهد. بلکه در عوض سرعت انجام کدها نسبت به تابع خالی را مقایسه کرده و نتیجه را اعلام میکند.
- وبسایت Quick-Bench از کامپایلرهای GCC و Clang پشتیبانی میکند.
- این ابزار از مجموعه محدودی از فلگهای کامپایلر پشتیبانی میکند.
- نتیجه حاصل از اجرای کدها نمایش داده نمیشود.
- سرعت انجام کدها را نسبت به تابع خالی مقایسه کرده و نتیجه را اعلام میکند.
- لینک دسترسی به کامپایلر آنلاین Quick-Bench: «+»
وبسایت CppInsights برای کامپایل کدهای ++C
«CppInsights» مانند IDE-های سنتی آنلاین نیست. زیرا این وبسایت، برنامههای کامپایل شده را اجرا نمیکند. در عوض، این وبسایت نسخههای مختلفی از کدها را نمایش میدهد. این نسخهها جزئیات مخفی روش کار کامپایلر و بررسی کدها را نشان میدهند.
مهمترین ویژگیهای سایت CppInsights را در فهرست زیر، نوشتهایم.
- وبسایت Quick-Bench از کامپایلر Clang پشتیبانی میکند.
- این کامپایلر فقط از فلگهای از پیشتعریف شده استفاده میکند.
- کدها اجرا نمیشوند.
- لینک دسترسی به کامپایلر آنلاین CppInsights: «+»

کامپایلر آنلاین Rextester
«Rextester» یکی از ابزارهای آنلاین و سادهای است که برای نوشتن، اجرا و اشتراکگذاری کدهای ++C به کار برده میشود. این کامپایلر آنلاین در هر لحظه فقط بر روی یک فایل کار میکند. یکی از ویژگیهای برجسته Rextester امکان ویرایش بیدرنگ کدهاست. این مسئله به معنای آن است که افراد زیادی میتوانند همزمان کدی را ویرایش کرده و بلافاصله نتیجه تغییرات اعمال شده را هم ببینند.
در فهرست زیر، ویژگیهای کلیدی سایت Rextester را نوشتهایم.
- این وبسایت از کامپایلرهای GCC و Clang و MSVC پشتیبانی میکند.
- کاربران میتوانند فلگهای کامپایلر را به صورت دستی تعریف کنند.
- امکان تعریف پارامتر زمان اجرا وجود ندارد.
- با استفاده از Stdin میتوان از کاربر اطلاعات دریافت کرد.
- لینک دسترسی به کامپایلر آنلاین Rextester: «+»
وبسایت کامپایلر Ideone
«Ideone» یکی دیگر از IDE-های آنلاین است. بر روی این IDE میتوان با زبانهای مختلفی کدنویسی کرد. Ideone به عنوان کامپایلر آنلاین ++C به کاربران امکان ویرایش، کامپایل، اجرا و اشتراکگذاری فایلهای ++C را میدهد.
ویژگیهای کلیدی سایت Ideone را در فهرست زیر نوشتهایم.
- وبسایت Ideone از کامپایلر GCC پشتیبانی میکند.
- امکان تغییر دادن فلگهای کامپایلر وجود ندارد.
- امکان افزودن پارامترهای زمان اجرا وجود ندارد.
- با استفاده از Stdin میتوان از کاربر اطلاعات دریافت کرد.
- لینک دسترسی به کامپایلر آنلاین Ideone: «+»
محیط کدنویسی آنلاین C++ Shell
وبسایت «C++ Shell» به عنوان کامپایلر آنلاین برای زبان ++C عمل کرده و میتواند کدهای این زبان را اجرا کند. تنها نکته این است که در این محیط کدنویسی آنلاین فقط در یک فایل میتوان کد نوشت و کامپایل کرد. ویژگی خاص این کامپایلر در پشتیبانی آن از ورودی Stdin است. این کار به تعامل بین برنامه و کاربر کمک میکند. در نتیجه کاربران میتوانند در زمانی که برنامه اجرا میشود، مقادیری را به آن ارسال کنند.
البته نقطه ضعف این وبسایت هم آن است که گاهی از اوقات در زمان کامپایل یا اجرای کدها متوقف میشود.
ویژگیهای کلیدی سایت C++ shell را در فهرست زیر نوشتهایم.
- وبسایت C++ Shell از کامپایلر GCC پشتیبانی میکند.
- مجموعه کمی از فلگهای کامپایلر در دسترس هستند.
- پارامتر زمان اجرا وجود ندارد.
- امکان ارسال داده به برنامه به صورت استاتیک و پویا وجود دارد.
- لینک دسترسی به کامپایلر آنلاین C++ Shell: «+»
یادگیری برنامه نویسی با فیلم های پروژه محور
یادگیری زبانهای برنامه نویسی شامل گذراندن دورهها علمی مختلفی است. این دورهها از مراحل ابتدایی مانند آشنایی با سینتکس، حلقه، انواع داده، عبارتهای شرطی و غیره شروع شده و تا مراحل پیشرفتهای مانند شیءگرایی بهپیش میروند. اجرای تمرینات پروژهمحور، مربوط به سطوح پیشرفته است. پروژههایی مانند طراحی سایت، طراحی رباتهای فعال در فضای مجازی و ساخت اپلیکیشنهای اندروید، هر کدام مهارتهای مخصوصی را نیاز دارند. شاید برای اجرای بعضی از پروژهها نیاز باشد که از چند زبان برنامهنویسی و تکنولوژی مختلف در کنار هم استفاده کنیم. در فهرست زیر، چند فیلم آموزش پروژهمحور برنامهنویسی از فرادرس را معرفی کردهایم.
در صورت تمایل با کلیک بر روی تصویر زیر، به فیلمهای آموزشی بیشتری دسترسی خواهید داشت.

فضای کدنویسی در سایت Tutorialspoint
فضای کدنویسی سایت «Tutorialspoint»، مانند IDE آنلاین کار میکند. این IDE میتواند همزمان بر روی چند فایل مختلف کار کند. البته بعضی از اوقات کمی سرعت کار وبسایت کند میشود. بعضی وقتها هم به دلیل بروز مشکلاتی مانند غیرپاسخگو بودن اپلیکیشن، نمیتوان از امکاناتی مانند ذخیره فایلها یا بارگذاری پروژهها استفاده کرد.

ویژگیهای کلیدی سایت Tutorialspoint را در فهرست زیر نوشتهایم.
- محیط کدنویسی سایت Tutorialspoint از کامپایلر GCC پشتیبانی میکند.
- امکان استفاده از فلگهای کامپایلر وجود دارد.
- پارامتر زمان اجرا وجود ندارد.
- با استفاده از Stdin میتوان از کاربر اطلاعات دریافت کرد.
- لینک دسترسی به کامپایلر آنلاین Tutorialspoint: «+»
کامپایلر آنلاین Codepad
این سایت کاربری سادهای دارد. سایت «Codepad» سرعت اجرا و کامپایل بالایی دارد. کاربران با استفاده از این سایت میتوانند به سادگی کدهای خود را نوشته و اجرا کنند. در ضمن امکان اشتراکگذاری کدها با دیگران هم وجود دارد.
مهمترین ویژگیهای سایت Codepad را در فهرست زیر نوشتهایم.
- Codepad از کامپایلر GCC پشتیبانی میکند.
- امکان تغییر دادن فلگهای کامپایلر وجود ندارد.
- پارامتر زمان اجرا وجود ندارد.
- امکان استفاده از جریان داده استاندارد «Stdin» برای دریافت اطلاعات وجود ندارد.

- لینک دسترسی به کامپایلر آنلاین Codepad: «+»
جمعبندی
با وجود کامپایلرهای آنلاینی مانند Wandbox و Compiler Explorer و Coliru تقریبا بیشتر نیازهای کاربران برآورده میشود. هرچند بعضی دیگر از وبسایتهایی که در این مطلب مورد اشاره قرار دادهایم، مانند Tutorialspoint با کیفیتی نزدیک به IDE-های مشهور کار میکنند. استفاده از کامپایلرهای آنلاین ++C یکی از بهترین روشها برای برنامه نویسان تازه کار یا افرادی است که فقط میخواهند تکه کد خاصی را کامپایل و اجرا کنند.
در این مطلب از مجله فرادرس با چند کامپایلر آنلاین ++C آشنا شدیم. نقاط قوت و ضعف آنها را بررسی کرده و لینک مربوط به دسترسی به هر کدام را هم قرار دادهایم. استفاده از کامپایلرهای آنلاین بخصوص برای کسانی که در لحظه، نیاز به تست تکه کدهای کوچک دارند، روش بسیار خوبی است.
source