I made a New Programming Language

Опубликовано: 19 Декабрь 2023
на канале: Tsoding Daily
56,946
1.3k

Previous Episodes:    • Bada  

References:
- The BEAM Book - https://blog.stenmans.org/theBeamBook/
- Tsoding - Bada - https://github.com/tsoding/bada

Support:
- BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9
- Servers: https://zap-hosting.com/en/shop/donat...

Chapters:
- 0:00:00 - Announcements
- 0:01:02 - Recap
- 0:02:17 - Important Chunks
- 0:03:36 - Compact Term Encoding
- 0:09:00 - Plans for Today
- 0:11:00 - Hello, Bada
- 0:11:48 - Just Vector and Write Function
- 0:16:04 - code:load_file/1
- 0:17:26 - C code
- 0:19:05 - Beam Header
- 0:20:16 - Extend Vector
- 0:22:13 - Size of Header
- 0:23:53 - Knocking Off Goalposts
- 0:25:42 - code_chunk()
- 0:27:07 - Chunk Size
- 0:31:31 - Code Info
- 0:34:20 - Parsing Code Info
- 0:37:44 - Backward Compatibility
- 0:40:09 - Disassembler
- 0:42:30 - BEAM is not a Stack Machine
- 0:44:49 - Generating the Code Section
- 0:46:53 - Padding
- 0:53:45 - Loading the Code
- 0:55:37 - Atoms Table
- 1:01:02 - Troubleshooting with Disassembler
- 1:07:12 - Atom 0
- 1:08:03 - The BEAM Book
- 1:08:53 - Import Table
- 1:09:58 - Erlang Function Signatures
- 1:10:53 - What is Arity?
- 1:11:26 - Empty Import Table
- 1:13:20 - Future Plans
- 1:14:58 - Getting Ahead of Myself
- 1:16:19 - Export Table
- 1:17:00 - Label
- 1:19:01 - Erlang Debugger
- 1:20:31 - Empty Export Table
- 1:21:38 - Troubleshooting with Disassembler
- 1:22:24 - Strings Chunk
- 1:23:59 - Empty Code Segment
- 1:24:48 - Instruction Format
- 1:27:46 - Argument Encoding
- 1:32:36 - enum Tag
- 1:33:24 - fn encode()
- 1:35:11 - Pushing Label
- 1:36:15 - Label Indices and Error Handling
- 1:38:12 - enum OpCode
- 1:38:45 - repr(u8)
- 1:39:57 - Compilation Errors
- 1:40:27 - func_info
- 1:43:27 - return
- 1:43:55 - unsigned argument
- 1:45:27 - Almost a Valid Module
- 1:46:31 - label_count and function_count
- 1:47:41 - int_code_end
- 1:49:04 - First Valid Module
- 1:49:40 - module_info()
- 1:52:37 - export bada:bada/0
- 1:55:23 - Erlang and TCO
- 1:55:42 - Purely Functional Spaghetti
- 1:57:31 - Reloading bada module
- 1:58:03 - Troubleshooting
- 1:59:28 - Returning Value from Function
- 2:02:36 - code:purge/1
- 2:04:04 - Continue Troubleshooting
- 2:04:52 - Jumping to the Second Label
- 2:06:26 - State of the Erlang VM Documentation
- 2:07:02 - Is Erlang a Good Career Choice?
- 2:07:46 - Is Erlang an Exotic Language?
- 2:08:40 - I don't need Elixir
- 2:09:07 - Encoding Bigger Arguments
- 2:12:43 - Do you really need Negative Numbers?
- 2:14:19 - Argument Encoding is not That Scary
- 2:15:22 - You only need Vector and write() function
- 2:16:23 - Inventing the Syntax
- 2:18:07 - Nuclear Situation in Novosibirsk
- 2:19:06 - Hash Table of Functions
- 2:20:19 - Generating Atom List
- 2:22:46 - struct Atoms
- 2:25:16 - Lazy Atom Collection
- 2:28:07 - Generating the Code of Functions
- 2:35:07 - Generating Atoms Chunk
- 2:36:02 - Atoms as a Vector instead of HashMap
- 2:39:54 - This is Already a Mini Programming Language
- 2:41:13 - Exporting Functions
- 2:42:23 - Collecting Function Labels
- 2:46:10 - program and labels are the same entities.
- 2:49:23 - Wrong order of atoms
- 2:52:22 - Wrong amount of labels
- 2:52:48 - Successfully Compiled Module
- 2:54:15 - Parser
- 2:59:35 - Legit Programming Language
- 3:00:22 - Compiler Inside Out
- 3:01:42 - Unhardcode input/output paths
- 3:07:00 - Final Demo
- 3:09:08 - BEAM is an EZ compilation target
- 3:09:35 - Getting disappointed with gleam
- 3:10:00 - Publishing the Source Code
- 3:12:30 - Outro


Смотрите видео I made a New Programming Language онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь Tsoding Daily 19 Декабрь 2023, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 56,946 раз и оно понравилось 1.3 тысяч людям.