---
title: "ProgrammingLanguage"
language: "en"
type: "Entity"
summary: "Notable modern and historical programming languages from all paradigms."
canonical_url: "https://reference.wolfram.com/language/ref/entity/ProgrammingLanguage.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Entity Types"
    link: "https://reference.wolfram.com/language/guide/EntityTypes.en.md"
---
# ProgrammingLanguage

Notable modern and historical programming languages from all paradigms.		[Related Interpreter](https://reference.wolfram.com/language/ref/interpreter/ProgrammingLanguage.en.md)

Entity["ProgrammingLanguage", name] or Entity[...] represents an entity of type "ProgrammingLanguage".

Entity[...][prop] gives the value of a specified property.

Entity[...][{propi, …}] gives the value of a list of properties.

EntityClass["ProgrammingLanguage", {propi -> speci, …}] represents a class of entities with values of propi defined by speci.

## Sample Entities

* Entity["ProgrammingLanguage", "Ada::6fcqr"]Entity["ProgrammingLanguage", "ALGOL::wph9f"]Entity["ProgrammingLanguage", "COBOL::249k9"]Entity["ProgrammingLanguage", "C::p5vhv"]Entity["ProgrammingLanguage", "Fortran::3734k"]Entity["ProgrammingLanguage", "Haskell::rb945"]Entity["ProgrammingLanguage", "Java::6847c"]Entity["ProgrammingLanguage", "Pascal::j5sy2"]Entity["ProgrammingLanguage", "Prolog::4644d"]Entity["ProgrammingLanguage", "WolframLanguage"]**…**

## Sample Entity Classes

* EntityClass["ProgrammingLanguage", "ConcurrentComputing"]EntityClass["ProgrammingLanguage", "DeclarativeProgramming"]EntityClass["ProgrammingLanguage", "FunctionalProgramming"]EntityClass["ProgrammingLanguage", "ImperativeProgramming"]EntityClass["ProgrammingLanguage", "LogicProgramming"]EntityClass["ProgrammingLanguage", "MultiParadigmProgrammingLanguage"]EntityClass["ProgrammingLanguage", "ObjectOrientedProgramming"]EntityClass["ProgrammingLanguage", "ParallelComputing"]EntityClass["ProgrammingLanguage", "ProceduralProgramming"]EntityClass["ProgrammingLanguage", "StructuredProgramming"]**…**

## Properties

|                   |                    |
| ----------------- | ------------------ |
| DateIntroduced    | date introduced    |
| EntityClasses     | entity classes     |
| EntityTypeList    | entity type list   |
| LanguageDesigners | language designers |
| Name              | name               |
| OfficialWebsite   | official website   |

## Details

* ``"ProgrammingLanguage"`` entities include codified instruction sets that are used to write software programs that can be executed by a computer.

* ``"ProgrammingLanguage"`` entity classes include collections of languages grouped by programming paradigm.

* Some properties are available for the ``"ProgrammingLanguage"`` entity type as a whole and can be given using the form ``EntityValue["ProgrammingLanguage", property]``. Such properties include:

|                               |                                                                    |
| ----------------------------- | ------------------------------------------------------------------ |
| "Properties"                  | the list of available properties                                   |
| "PropertyCanonicalNames"      | the standard names of available properties                         |
| "SampleEntities"              | a sample list of available entities (typically of length 10)       |
| "SampleEntityClasses"         | a sample list of available entity classes (typically of length 10) |
| "EntityCount"                 | number of entities available                                       |
| "Entities"                    | the list of available entities                                     |
| "EntityCanonicalNames"        | the standard names of available entities                           |
| "EntityClasses"               | the list of available entity classes                               |
| "EntityClassCanonicalNames"   | the standard names of available entity classes                     |
| "PropertyClasses"             | the list of available property classes                             |
| "PropertyClassCanonicalNames" | the standard names of available property classes                   |
| "PropertyCount"               | number of properties available                                     |

* The following annotations can be used in the third argument of ``EntityValue["ProgrammingLanguage", property, annotation]`` :

|     |     |
| --- | --- |
| "Source" | source information for the property |
| "Date" | the date associated with the entity-property value (if any) |
| "EntityAssociation" | an association of entities and entity-property values |
| "PropertyAssociation" | an association of properties and entity-property values |
| "EntityPropertyAssociation" | an association in which the specified entities are keys, and values are a nested association of properties and entity-property values |
| "PropertyEntityAssociation" | an association in which the specified properties are keys, and values are a nested association of entities and entity-property values |
| "Dataset" | a dataset in which the specified entities are keys, and values are an association of property names and entity-property values |

* The following annotations can be used in the second argument of ``EntityValue[property, annotation]`` :

|                          |                                                                 |
| ------------------------ | --------------------------------------------------------------- |
| "Qualifiers"             | the list of possible qualifiers for the property                |
| "QualifierValues"        | the list of possible values that can be given to each qualifier |
| "DefaultQualifierValues" | the list of default values for the property's qualifiers        |
| "Description"            | a brief textual description of the property                     |
| "Definition"             | a detailed textual definition of the property                   |
| "PhysicalQuantity"       | the physical quantity associated with the entity-property value |
| "Unit"                   | the unit associated with the entity-property value              |

* A qualifier value of ``Automatic`` indicates that an applicable format of values can be used; e.g. for the ``"Date"`` qualifier, this includes a proper date or date span.

---

## Examples (4)

### Basic Examples (4)

Use ctrl+= for entity discovery:

```wl
In[1]:= [image]

Out[1]= Entity["ProgrammingLanguage", "Java::6847c"]
```

---

Find a property value for an entity:

```wl
In[1]:= Entity["ProgrammingLanguage", "WolframLanguage"]["DateIntroduced"]

Out[1]= DateObject[{1988, 6, 23}, "Day"]
```

---

Retrieve a dataset of all available properties for an entity:

```wl
In[1]:= Entity["ProgrammingLanguage", "Fortran::3734k"]["Dataset"]

Out[1]=
Dataset[Association[EntityProperty["ProgrammingLanguage", "DateIntroduced"] -> 
   DateObject[{1957, 4}, "Month"], EntityProperty["ProgrammingLanguage", "LanguageDesigners"] -> 
   {Entity["Financial", "NYSE:IBM"], Entity["Person", "JohnBackus::58s ... ogrammingLanguage", "ProceduralProgramming"], 
    EntityClass["ProgrammingLanguage", "StructuredProgramming"]}, 
  EntityProperty["Thing", "EntityTypeList"] -> {EntityType["ProgrammingLanguage"]}, 
  EntityProperty["Thing", "Name"] -> "Fortran"]]
```

---

Find programming languages designed by Niklaus Wirth:

```wl
In[1]:= EntityClass["ProgrammingLanguage", "LanguageDesigners" -> MemberQ[Entity["Person", "NiklausWirth::qcfx8"]]]//EntityList

Out[1]= {Entity["ProgrammingLanguage", "ALGOLW::348h4"], Entity["ProgrammingLanguage", "Euler::wt92v"], Entity["ProgrammingLanguage", "Modula2::4v2pm"], Entity["ProgrammingLanguage", "Modula::397x2"], Entity["ProgrammingLanguage", "Oberon2::kj3t5"], Entity["ProgrammingLanguage", "Oberon::m4884"], Entity["ProgrammingLanguage", "ObjectPascal::r4s7n"], Entity["ProgrammingLanguage", "Pascal::j5sy2"]}
```

## See Also

* [`WolframLanguageSymbol`](https://reference.wolfram.com/language/ref/entity/WolframLanguageSymbol.en.md)
* [`ProgrammingLanguage`](https://reference.wolfram.com/language/ref/interpreter/ProgrammingLanguage.en.md)
* [`ComputedProgrammingLanguage`](https://reference.wolfram.com/language/ref/interpreter/ComputedProgrammingLanguage.en.md)
* [`ProgrammingLanguage`](https://reference.wolfram.com/language/ref/textcontent/ProgrammingLanguage.en.md)

## Related Guides

* [Entity Types](https://reference.wolfram.com/language/guide/EntityTypes.en.md)

## History

* [Introduced in 2019 (12.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn120.en.md)