diff --git a/web/thesauruses/_meta/language_basics.json b/web/thesauruses/_meta/language_basics.json new file mode 100644 index 000000000..0de09acf0 --- /dev/null +++ b/web/thesauruses/_meta/language_basics.json @@ -0,0 +1,57 @@ +{ + "meta": { + "structure": "language_basics", + "structure_name": "Basics of A Programming Language" + }, + "categories": { + "Typing Systems": { + "statically_typed": "The programming language may be statically typed", + "dynamically_typed": "The programming language may be dynamically typed" + }, + "Paradigm Category": { + "procedural_language": "Language extensively uses procedures to explicitly detail how tasks are performed", + "functional_language": "Language extensively uses functions, emphasize immutability", + "object_oriented_language": "Language extensively uses the concept of objects, which encapsulate data and behaviour" + }, + "Level of Abstraction": { + "low_level_language": "Language provides minimal abstraction from the hardware architecture of the computer", + "high_level_language": "Language provides a more abstract and user-friendly interface for software development" + }, + "Execution Method": { + "compiled_language": "Language is translated into machine code or an intermediate form by a compiler before execution", + "interpreted_language": "Language is executed line by line by an interpreter at runtime withot a separate compilation step" + }, + "Application Domain": { + "general_purpose_language": "Language is designed to be versatile and applicable to a wide range of tasks and applications", + "domain_specific_language": "Language is designed to address specific application domains or industries" + }, + "Memory Management": { + "manual_management": "Languages where memory has to be managed by the programmer manually", + "automatic_management": "Languages with an extensive support of automatic memory management" + }, + "Generation": { + "first_generation": "Language consists of binary code directly understood and executed by a computer's central processing unit (CPU) and represent the lowest level of programming abstraction", + "second_generation": "Language uses mnemonic codes and symbols to represent machine-level instructions, providing a more human-readable way to program and interact with a computer's hardware.", + "third_generation": "High-level programming languages designed for general-purpose software development, offering a higher level of abstraction and greater ease of use compared to low-level languages like assembly.", + "fourth_generation": "High-level programming languages designed for specific applications or domains, often using natural language-like syntax and focusing on rapid application development." + }, + "Entry Point": { + "main_function": "Entry point of the program is the main function of the file", + "custom_function": "In some programming languages, custom functions can be made to be the entry point of a program", + "script_file": "Entry point of the program is the top of the script file" + }, + "Comments": { + "single_line": "Single line comments are used for brief explanations. Most common indicators of single line comments are // and #", + "multi_line": "Multi line comments span multiple lines. Used for longer explanations, or for commenting out code which you do not intend to execute. Usually multi line comments are enclosed within /* ... */, ''' ... ''' or \"\"\" ... \"\"\" ", + "documentation": "Some programming languages have specific comment syntax for generating documentation. For example, Javadoc comments can be generated using /** ", + "special": "Some programming languages have a special comment syntax for specific purposes" + }, + "Library and Framework support": { + "standard_libraries": "Programming Language is supported by an extensive network of standard libraries which are not required to be imported externally", + "extensive_frameworks": "Language has a strong network of external frameworks for supporting additional functionalities. Usually the external libraries are installed into the project using a package manager, and imported into the required file using the `import` keyword" + }, + "Minimal Program": { + "hello_world": "The most minimal program to understand all the basics is the Hello World program. Here you only need to print \"Hello World\" to the console/output of the programming language of your choice." + } + } +} \ No newline at end of file diff --git a/web/thesauruses/lua/5/data_types.json b/web/thesauruses/lua/5/data_types.json new file mode 100644 index 000000000..6dc5a20be --- /dev/null +++ b/web/thesauruses/lua/5/data_types.json @@ -0,0 +1,120 @@ +{ + "meta": { + "language": "lua", + "language_name": "Lua", + "structure": "data_types", + "language_version": "5.1" + }, + "concepts": { + "boolean": { + "name": "Boolean", + "not-implemented": true, + "comment": "The type boolean has two values, false and true and both nil and false make a condition false." + }, + "signed_integer_8_bit": { + "name": "Signed 8-bit integer", + "not-implemented": true + }, + "unsigned_integer_8_bit": { + "name": "Unsigned 8-bit integer", + "not-implemented": true + }, + "signed_integer_16_bit": { + "name": "Signed 16-bit integer", + "not-implemented": true + }, + "unsigned_integer_16_bit": { + "name": "Unsigned 16-bit integer", + "not-implemented": true + }, + "signed_integer_32_bit": { + "name": "Signed 32-bit integer", + "not-implemented": true + }, + "unsigned_integer_32_bit": { + "name": "Unsigned 32-bit integer", + "not-implemented": true + }, + "signed_integer_64_bit": { + "name": "Signed 64-bit integer", + "not-implemented": true + }, + "unsigned_integer_64_bit": { + "name": "Unsigned 64-bit integer", + "not-implemented": true + }, + "signed_integer_as_object": { + "name": "Signed object-based Integer", + "not-implemented": true, + "comment":"Lua does not have a built-in concept of distinct signed, object-based integers with the full range of operations and methods that you might find in languages like C++ or Java." + }, + "unsigned_integer_as_object": { + "name": "Unsigned object-based Integer", + "not-implemented": true + }, + "signed_float_16_bit": { + "name": "Signed 16-bit floating point", + "not-implemented": true + }, + "unsigned_float_16_bit": { + "name": "Unsigned 16-bit floating point", + "not-implemented": true + }, + "signed_float_32_bit": { + "name": "Signed 32-bit floating point", + "not-implemented": true + }, + "unsigned_float_32_bit": { + "name": "Unsigned 32-bit floating point", + "not-implemented": true + }, + "signed_float_64_bit": { + "name": "Signed 64-bit floating point", + "not-implemented": true + }, + "unsigned_float_64_bit": { + "name": "Unsigned 64-bit floating point", + "not-implemented": true + }, + "signed_float_as_object": { + "name": "Signed object-based floating point", + "not-implemented": true, + "comment":"Same as integer applies here too." + }, + "unsigned_float_as_object": { + "name": "Unsigned object-based floating point", + "not-implemented": true + }, + "character": { + "name": "Character", + "not-implemented": true + }, + "string_as_object": { + "name": "String as an object", + "not-implemented": true, + "comment":"In Lua, strings are not treated as objects in the same way that some other programming languages, like Python or JavaScript" + }, + "string_as_array": { + "name": "String as an array of characters", + "code": + [ + "local myString = 'Hello, World!'\nlocal firstChar = myString:sub(1, 1) -- Access the first character\nlocal fifthChar = myString:sub(5, 5) -- Access the fifth character\nprint(firstChar) -- Output: 'H'\nprint(fifthChar) -- Output: 'o'" + ], + "comment":"In Lua, strings are treated as arrays of characters." + }, + "complex_as_object": { + "name": "Complex Number as an object", + "not-implemented": true, + "comment":"Lua does not have built-in support for complex numbers as a distinct data type like some other languages, such as Python." + + }, + "real_number_part": { + "name": "Complex number real part", + "not-implemented": true + }, + "imaginary_number_part": { + "name": "Complex number imaginary part", + "not-implemented": true + } + } +} diff --git a/web/thesauruses/meta_info.json b/web/thesauruses/meta_info.json index d04d4cd99..cc41fb3a2 100644 --- a/web/thesauruses/meta_info.json +++ b/web/thesauruses/meta_info.json @@ -31,6 +31,7 @@ "exception_handling": "Exception Handling", "functions": "Functions, Methods, and Subroutines", "io": "Input and Output", + "language_basics": "Basics of A Programming Language", "lists": "Lists, Arrays, and Hashed Lists", "operators": "Logical and Mathematical/Arithmetic Operators", "queues_stacks": "Queues and Stacks",