What is syntax in a programming language?
Tags: programming, productivity, beginners, tutorial
Published: 2022-08-19 19:30:50

Every language has an **underlying structure** that users need to understand in order to use it effectively. It’s not enough to know the meaning of the individual words that comprise the language—if you don’t know how to arrange them, you won’t be able to communicate. 

Imagine knowing the dictionary definition of every single word in the English language while not understanding how English sentences are formed. You’d have an incredibly rich vocabulary, but you’d have no way of using it. The same principle applies to programming languages. In order to use a programming language, you need to understand its **syntax**. 

If you’re new to programming, you'll find that learning syntax rules are a key part of learning a programming language. Knowing what syntax is and why it’s important will help you learn these rules and gain a better understanding of how code works structurally.

Today, we’ll explore syntax in more detail, consider why it’s important, and learn how it varies between a few major programming languages.

**We’ll cover**:
* [What is syntax?](#What)
   * [Syntax vs semantics](#Semantics)
* [Comparing syntax in programming languages](#Comparing)
* [Learn more about programming](#Learn)

<a name="What"></a>

## What is syntax?

Syntax is a **set of rules** that tell us what arrangements of characters **create a valid statement** in a language. Human languages and programming languages are both dependent on syntax. To use either type of language effectively, you need to know how to fit elements together to achieve your goal. In the case of a human language, this goal is successful communication. In the case of a programming language, the goal is to issue a set of directives that a computer can read and act on.
 
**Syntax errors** occur when the elements in a statement are disordered in a way that impedes successful communication. Let’s look at a simple example from English:
 
1. *The dog chased the rabbit.*
 
2. *The rabbit chased the dog.*
 
3. *Chased the rabbit the dog.*
 
As you can see, word order matters a great deal in English. The words are the same in these three sentences, but combining them in different ways results in very different meanings. Sentence one contains a simple statement that accords with English syntax. Sentence two switches the positions of the subject and direct object, so that while the sentence still makes sense syntactically, the meaning is radically different. The third sentence shuffles the words around in such a way that it’s difficult to read. It doesn’t follow the conventions of English syntax, so it’s unclear what the sentence is saying.
 
Using correct syntax is arguably even more important in programming languages than it is in human languages. If you’re learning a new human language and you only have a beginner’s understanding of its syntax, you’ll often still be able to get your meaning across. This is because syntax in human languages is often flexible, and human listeners can problem-solve to figure out the meaning of an imperfect sentence.
 
Programming languages are less accommodating to syntax errors. Syntax determines how we **organize the elements in our code** to make it **legible to the computer**. If there’s a syntax error, the computer might not be able to read it.
 
Here are some examples of what programming syntax can determine:
* Whether we use lower-case or upper-case characters
* How we notate code comments
* How we use whitespace
* How we indicate the relationships between **statements** (individual commands issued to the computer)

Syntax is important in programming because it would be impossible to write functioning code without it. Code is a set of instructions written in a language that a computer can read and act on. If there are syntax errors in the code, the program won’t work.

<a name="Semantics"></a>

### Syntax vs semantics

[“Semantics”](https://www.educative.io/answers/what-is-the-difference-between-syntax-and-semantic-errors?eid=5082902844932096) is another term you might encounter while researching syntax. The relationship between syntax and semantics is important. In linguistics, syntax refers to **word order**: the way that words need to be sequenced in order to convey meaning. Semantics is the **meaning** that those words convey. Likewise, in programming, syntax refers to the structure of the language, the internal logic that determines how the language needs to be written. The semantic value of a line of code is its content or meaning. 

Let’s look at a few examples of the Hello World program written in different programming languages. As we’ll see, the syntax varies between examples while the semantic meaning remains the same.

**Python**:

```
print("hello world")
# returns hello world

--->
hello world
```

**Java**:

```
class HelloWorld {
    public static void main( String args[] ) {
        System.out.println( "hello world" );
    }
}
// returns hello world

--->
hello world
```

**C++**:

```
#include <iostream>
using namespace std;
 
int main() {
  cout << "hello world";
  return 0;
}
// returns hello world

--->
hello world
```

<a name="Comparing"></a>

## Comparing syntax in programming languages

A quick glance at the previous example reveals that syntax can vary quite a bit between languages. Python is clearly simpler than Java and C++. This is because Python was designed to read like a human language. It doesn’t take much time to learn Python well enough that you can read a program and understand basically what it’s doing. Here are a few specific ways that Python syntax is simpler than Java and C++.
 
* Python doesn’t require users to **declare variable types**, while Java and C++ do.
* **Whitespace** is an important part of Python syntax. The indentation of lines plays an important role in indicating the relationships between lines of code. In Java and C++, **semicolons** are used to indicate the end of a statement, and **curly brackets** are used to demarcate groups of statements.
* **Code comments** in Python are notated with `#`, while in Java and C++ they’re notated with `//`.
 
As you can probably tell at this point, Python is unique among these three languages, and Java and C++ are quite similar. When languages have similar syntax, this often means that they’re based on an earlier language. Java and C++ are similar because both are based on the C programming language. This is another way in which programming languages are similar to human languages. Similarities in vocabulary, grammar, and syntax generally indicate a common ancestor. 
 
These similarities can be really helpful when trying to learn a new language. If you’re proficient in Java and you’re trying to learn C++ or vice versa, you’ll encounter some familiar elements that will streamline the process.

<a name="Learn"></a>
 
## Learn more about programming

Hopefully, this article has helped you better understand the fundamental role of syntax in languages, programming and otherwise. If you’re just starting out, learning a programming language’s syntax might seem like a daunting process. Fortunately, there are a lot of resources out there that can help you. Consider perusing Educative’s [**beginner-level courses**](https://www.educative.io/explore?search=true&search_string=&difficulty_level=beginner&free=true&pageNo=1?eid=5082902844932096). These are designed to help aspiring coders learn the basics of computer programming, and they include free courses for learning [**Python**](https://www.educative.io/courses/learn-python-3-from-scratch?eid=5082902844932096), [**Java**](https://www.educative.io/courses/learn-java-from-scratch?eid=5082902844932096), and [**C++**](https://www.educative.io/courses/learn-cpp-from-scratch?eid=5082902844932096) from scratch.

*Happy learning!*

### Continue learning about programming on Educative
* [How to think like a programmer: 3 misconceptions debunked](https://www.educative.io/blog/think-like-a-programmer?eid=5082902844932096)
* [How to learn logical reasoning for coding and beyond](https://www.educative.io/blog/how-to-learn-logical-reasoning?eid=5082902844932096)
* [How critical thinking can help you learn to code](https://www.educative.io/blog/learn-to-code-critical-thinking?eid=5082902844932096)

### Start a discussion
What syntax is your favorite to use? Was this article helpful? Let us know in the comments below!