A list of 58 features found in programming languages.
Below are features with at least 10 measurements (you can also view all).
We also have a page of all keywords and all file extensions.
| title | pseudoExample | yes | no | percentage |
|---|---|---|---|---|
| Comments | # Hello PLDB | 635 | 4 | 99% |
| Line Comments | # Hello PLDB | 537 | 22 | 96% |
| Strings | Hello PLDB | 374 | 2 | 99% |
| Print() Debugging | print "Hello PLDB" | 322 | 1 | 100% |
| MultiLine Comments | /* Hello PLDB */ | 227 | 24 | 90% |
| Integers | 80766866 | 171 | 1 | 99% |
| Floats | 80766866 | 147 | 0 | 100% |
| Booleans | pldb = true | 120 | 8 | 94% |
| Hexadecimals | 80766866 | 110 | 2 | 98% |
| Conditionals | if (isTrue) printPldb() | 78 | 4 | 95% |
| Semantic Indentation | line0 if true line1 print "Hello PLDB" | 72 | 526 | 12% |
| Assignment | name = "PLDB" | 57 | 1 | 98% |
| Octals | 80766866 | 54 | 4 | 93% |
| File Imports | import pldb | 52 | 3 | 95% |
| Functions | function computePLDBRanks() {} | 51 | 2 | 96% |
| While Loops | while (pldb.pop()) loop() | 50 | 4 | 93% |
| Binary Literals | 80766866 | 49 | 1 | 98% |
| Standard Library | print("print is part of stdlib") | 41 | 5 | 89% |
| Operator Overloading | def __add__(): doSomethingDifferent() | 36 | 14 | 72% |
| Classes | class PLDBFile {} | 32 | 6 | 84% |
| Constants | const name = "PLDB" | 30 | 2 | 94% |
| Type Inference | imAString = "pldb" | 28 | 1 | 97% |
| Macros | #define pldbItems 4000 | 28 | 10 | 74% |
| Switch Statements | switch animal: case dog-buy; case cat-sell; | 27 | 2 | 93% |
| Lists | [2, 3, 10] | 25 | 2 | 93% |
| Exceptions | throw new Error("PLDB uh oh") | 24 | 3 | 89% |
| Case Insensitive Identifiers | pLdB = "PLDB" | 24 | 57 | 30% |
| Case Sensitivity | pldb != PLDB | 22 | 9 | 71% |
| Inheritance | class PLDBFile extends File | 22 | 2 | 92% |
| Garbage Collection | var iDontNeedToFreeThis | 22 | 8 | 73% |
| Pointers | int *pldb | 21 | 5 | 81% |
| Directives | use strict; | 21 | 3 | 88% |
| Static Typing | int pldbRank = 100 | 20 | 2 | 91% |
| Access Modifiers | class PLDBFile { public title } | 19 | 3 | 86% |
| Constructors | PLDBFile { constructor() {} } | 17 | 4 | 81% |
| Scientific Notation | 80766866 | 15 | 1 | - |
| Multiple Inheritance | extends parentWhichExtendsSomethingElse | 14 | 6 | 70% |
| Multiline Strings | hello = """Hello\nPLDB""" | 14 | 1 | - |
| Bitwise Operators | 3 == (2 | 1) | 14 | 1 | - |
| Module Pattern | module PLDB {} | 13 | 0 | - |
| Message Passing | get pldb | 13 | 1 | - |
| Pattern Matching | fib 0 = 1; fib 1 = 1 | 12 | 2 | - |
| Structs | struct pldbFile { int rank; char *title; }; | 11 | 0 | - |
| Increment and decrement operators | i++ | 11 | 5 | - |
| Zero-based numbering | firstItem = pldb[0] | 10 | 3 | - |
| Enums | colorsEnum { "red", "white", "blue"} | 10 | 5 | - |
| Single Dispatch | person.run() | 9 | 1 | - |
| Regular Expression Syntax Sugar | /pldb/ | 9 | 6 | - |
| Here Document | `A big multliline text block` | 9 | 1 | - |
| Disk Output | write("pldb.csv", "...") | 9 | 4 | - |
| Ternary operators | true ? 1 : 0 | 8 | 8 | - |
| Function Overloading | add(string: str, string2: str) | 7 | 11 | - |
| Single Pass Compiler | x = 2; print x | 7 | 6 | - |
| Units of Measure | 42cm | 6 | 5 | - |
| Type Classes | 5 | 8 | - | |
| Structural Typing | 5 | 6 | - | |
| Named Arguments | 4 | 8 | - | |
| Variable Substitution Syntax | name = "PLDB"; print $name | 2 | 10 | - |