কোন প্রোগ্রামিং ভাষার বাইরের রূপকে তার সিনট্যাক্স বলা হয়। বেশির ভাগ প্রোগ্রামিং ভাষাই সম্পূর্ণ টেক্সট-ভিত্তিক। এগুলি শব্দ, সংখ্যা ও বিরামচিহ্নবিশিষ্ট টেক্সট ব্যবহার করে, অনেকটা স্বাভাবিক ভাষাগুলির মতই। তবে কিছু কিছু প্রোগ্রামিং ভাষা আছে যেগুলি চিত্রভিত্তিক। এগুলি বিভিন্ন প্রতীকের মধ্যকার অবস্থানগত সম্পর্ক কাজে লাগিয়ে প্রোগ্রাম লিখতে সহায়তা করে।
কোন প্রোগ্রামিং ভাষার প্রতীকগুলি কী কী উপায়ে একত্রিত হয়ে সিনট্যাক্সগতভাবে সঠিক প্রোগ্রাম তৈরি করতে পারে, ভাষাটির সিনট্যাক্সে তার বিবরণ থাকে। আর কোন প্রতীকসমষ্টির অর্থ কী হবে, তা নির্ধারণ করে ভাষাটির সেমান্টিক্‌স।

প্রোগ্রামিং ভাষার সিনট্যাক্স সাধারণত নিয়মিত এক্সপ্রেশন (regular expression) ([[আভিধানিক বিশ্লেষণ|আভিধানিক গঠনের জন্য) এবং [[বাকাস-নাউর রূপ]] (Backus-Naur Form) ([[প্রসঙ্গ-মুক্ত ব্যাকরণ|ব্যাকরণিক]] গঠনের জন্য) এই দুইয়ের সমন্বয়ে তৈরি করা হয়।

নিচে [[লিস্প প্রোগ্রামিং ভাষা|লিস্পের]] ওপর ভিত্তি করে লেখা একটি সরল ব্যাকরণ দেয়া হল:

codice_1

উপরের ব্যাকরণটি নিচের জিনিসগুলিকে সংজ্ঞায়িত করেছে:

এই ব্যাকরণ সঠিকভাবে অনুসরণকারী কিছু টোকেনের উদাহরণ: 'codice_2', 'codice_3', 'codice_4'

সিনট্যাক্সগতভাবে সঠিক প্রোগ্রাম মাত্রেই সেমান্টিক্‌স বা অর্থগতভাবে সঠিক হবে, তা নয়। অনেক সিনট্যাক্সগতভাবে সঠিক প্রোগ্রাম তাই অনুবাদ বা নির্বাহ করার সময় ত্রুটির সৃষ্টি করতে পারে। কোন কোন ক্ষেত্রে এরকম প্রোগ্রাম [[অসংজ্ঞায়ির আচরণ]] (undefined behavior) প্রদর্শন করতে পারে। আবার কোন প্রোগ্রাম প্রোগ্রামিং ভাষার সমস্ত নিয়মকানুন মেনে চললেও এটি প্রোগ্রামার যা করতে চেয়েছিলেন সেই অর্থে না-ও বাস্তবায়িত হতে পারে।

মানুষের মুখের [[স্বাভাবিক ভাষা|স্বাভাবিক ভাষাতেও]] এর উদাহরণ মেলে। কোন ব্যাকরণগতভাবে শুদ্ধ বাক্য অর্থহীন হতে পারে, যেমন:

নিচের [[সি প্রোগ্রামিং ভাষা|সি প্রোগ্রামিং ভাষায়]] লেখা কোডটি সিনট্যাক্সগতভাবে শুদ্ধ, কিন্তু এটি এমন একটি অপারেশন সম্পাদন করে যা সেমান্টিক্‌সগতভাবে বা অর্থগতভাবে সংজ্ঞায়িত নয়। (যেহেতু p একটি [[নাল পয়েন্টার]], p->real এবং p->im অপারেশনগুলি অর্থহীন):

বহিঃসংযোগ
টাইপকৃত বনাম অ-টাইপকৃত ভাষা
উদ্দেশ্য
সিনট্যাক্স