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
Watch video I made a New Programming Language online without registration, duration hours minute second in high quality. This video was added by user Tsoding Daily 19 December 2023, don't forget to share it with your friends and acquaintances, it has been viewed on our site 56,946 once and liked it 1.3 thousand people.