Software Alternatives, Accelerators & Startups

FASM VS Tiny C Compiler

Compare FASM VS Tiny C Compiler and see what are their differences

FASM logo FASM

Open source self-assembling assembler supporting multiple operating systems.

Tiny C Compiler logo Tiny C Compiler

The Tiny C Compiler is an x86, x86-64 and ARM processor C compiler created by Fabrice Bellard.
  • FASM Landing page
    Landing page //
    2022-08-22
  • Tiny C Compiler Landing page
    Landing page //
    2019-11-06

FASM features and specs

  • High Performance
    FASM (Flat Assembler) is known for its high-performance capabilities due to its design, which allows it to generate highly optimized machine code that can execute efficiently on processors, making it suitable for system-level programming where performance is critical.
  • Size Efficiency
    FASM produces very small executables, which is advantageous in environments where memory and storage space are limited. Its ability to create compact binaries is particularly useful in embedded systems and resource-constrained applications.
  • Simplicity and Directness
    FASM provides a straightforward approach to assembly programming. Its syntax and operation are designed to be simple and direct, which can facilitate learning and development for those familiar with assembly language.
  • Self-Contained
    FASM is a self-contained assembler, meaning it does not rely on external libraries or tools to function. This can simplify the setup process and reduce dependency issues across different systems and development environments.
  • Platform Support
    FASM supports multiple platforms, including Windows, Linux, and DOS, allowing developers to use the same assembler across different operating systems, enhancing its versatility and utility in cross-platform development.

Possible disadvantages of FASM

  • Steep Learning Curve
    Despite its simplicity compared to other assemblers, FASM still requires a deep understanding of assembly language programming, which can be challenging for beginners or those more accustomed to high-level programming languages.
  • Limited High-Level Features
    FASM lacks many of the high-level abstractions found in modern programming languages, which can make complex software development more cumbersome and time-consuming, particularly for applications outside of niche or system-level requirements.
  • Minimal Community and Support
    Compared to more popular development tools, FASM has a smaller community and limited official support resources. This can make finding help and examples more difficult when encountering issues or trying to implement specific features.
  • Debugging Difficulty
    Debugging assembly language programs can be difficult, as errors are often low-level and not as straightforward to trace or fix as in high-level languages. This can extend the development and testing phases of projects using FASM.
  • Compatibility and Portability Issues
    Writing in assembly language with FASM may lead to compatibility and portability issues, as code may need to be rewritten or heavily modified to work on different architectures or systems, limiting its flexibility for certain applications.

Tiny C Compiler features and specs

  • Fast Compilation
    Tiny C Compiler (TCC) is known for its incredibly fast compilation speed, which makes it ideal for quick compilations and testing.
  • Small Size
    TCC has a very small footprint compared to other compilers, making it easy to include in applications and use in environments with limited resources.
  • C99 Support
    TCC provides support for the C99 standard, allowing the use of newer C language features.
  • Dynamic Code Generation
    TCC can compile and execute code dynamically, which can be useful for scripting or embedded contexts.
  • Simplified Licensing
    Under the GNU Lesser General Public License (LGPL), TCC can be more easily used in various projects, including proprietary ones, compared to compilers with more restrictive licenses.

Possible disadvantages of Tiny C Compiler

  • Limited Optimization
    TCC does not perform extensive optimization, which can result in less efficient executable code compared to compilers like GCC or Clang.
  • Incomplete C Standard Library
    TCC's standard C library implementation is not as complete as those of more established compilers, which might lead to compatibility issues.
  • Lack of Detailed Documentation
    Users may find the available documentation lacking in detail, which can hinder learning and debugging for complex projects.
  • Limited Platform Support
    TCC is primarily designed for smaller-scale applications and lacks some platform-specific and cross-compilation capabilities.
  • Fewer Community Resources
    Compared to major compilers like GCC or Clang, TCC has a smaller user community, which can mean fewer tutorials, forums, and third-party support tools.

FASM videos

Code Review: string length in x64 assembly (fasm)

More videos:

  • Review - Code Review: x64 fasm strlen

Tiny C Compiler videos

No Tiny C Compiler videos yet. You could help us improve this page by suggesting one.

Add video

Category Popularity

0-100% (relative to FASM and Tiny C Compiler)
IDE
28 28%
72% 72
Text Editors
35 35%
65% 65
Group Chat & Notifications
Email Marketing
0 0%
100% 100

User comments

Share your experience with using FASM and Tiny C Compiler. For example, how are they different and which one is better?
Log in or Post with

Social recommendations and mentions

Based on our record, Tiny C Compiler should be more popular than FASM. It has been mentiond 37 times since March 2021. We are tracking product recommendations and mentions on various public social media platforms and blogs. They can help you identify which product is more popular and what people think of it.

FASM mentions (14)

  • Ask HN: What less-popular systems programming language are you using?
    Did you get a look at fasm [0] ? It has nice capabilities [0] : https://flatassembler.net/. - Source: Hacker News / over 1 year ago
  • How do you add webassembly support?
    Are you affiliated with https://flatassembler.net/? Source: over 3 years ago
  • Ask HN: What are some excellent pieces of software written by a single person?
    Https://flatassembler.net Unfortunately it won't run on recent Macs since it's written in 32-bit assembly, so some modifications are needed. - Source: Hacker News / over 3 years ago
  • macOS Subsystem for Linux
    Running 32-bit apps, for example. I sometimes code in assembly for fun (my professional work is mobile app developer, though). One of my favorite assemblers is FASM: https://flatassembler.net/ It's still written in 32-bit assembly, which means it won't run on any macOS since Catalina. On the other side, Linux still provide 32-bit compatibility mode. - Source: Hacker News / almost 4 years ago
  • Announcing: MiniRust
    Since you mentioned Zig, I'd like to ask a tangential question in case someone could chime in. Is there any way to have Zig output a flat binary? I am looking for a higher level FlatAssembler. [0] [0] https://flatassembler.net/. - Source: Hacker News / almost 4 years ago
View more

Tiny C Compiler mentions (37)

  • What every compiler writer should know about programmers (Anton Ertl, 2015) [pdf]
    Some of those already exist, e.g. https://bellard.org/tcc/ However, they're not in widespread use. I would be curious to learn if there's any data/non-anecdotal information as to why. Is it momentum/inertia of GCC/LLVM/MSVC? Are alternative compilers incomplete and can't actually compile a lot of practical programs (belying the "relatively simple program") claim? Or is the performance differential due to... - Source: Hacker News / 5 months ago
  • Git: Introduce Rust and announce that it will become mandatorty
    In theory you should be able to use TCC to build git currently [1] [2]. If you have a lightweight system or you're building something experimental, it's a lot easier to get TCC up and running over GCC. I note that it supports arm, arm64, i386, riscv64 and x86_64. [1] https://bellard.org/tcc/ [2] https://github.com/TinyCC/tinycc. - Source: Hacker News / 10 months ago
  • Weird Lexical Syntax
    > I'm not sure who wants to be able to syntax highlight C at 35 MB per second, but I am now able to do so Fast, but tcc *compiles* C to binary code at 29 MB/s on a really old computer: https://bellard.org/tcc/#speed. - Source: Hacker News / over 1 year ago
  • Pnut: A C to POSIX Shell Compiler you can Trust
    "Because Pnut can be distributed as a human-readable shell script (`pnut.sh`), it can serve as the basis for a reproducible build system. With a POSIX compliant shell, `pnut.sh` is sufficiently powerful to compile itself and, with some effort, [TCC](https://bellard.org/tcc/). Because TCC can be used to bootstrap GCC, this makes it possible to bootstrap a fully featured build toolchain from only human-readable... - Source: Hacker News / almost 2 years ago
  • Cwerg: C-like language that can be implemented in 10kLOC
    For what it's worth you can implement a C compiler in under 10kLOC. The chibi C compiler is only a few thousand lines [1]. There is also Cake [2] and the tiny C compiler [3] which are both relatively small. [1] https://github.com/rui314/chibicc [3] https://bellard.org/tcc/. - Source: Hacker News / over 2 years ago
View more

What are some alternatives?

When comparing FASM and Tiny C Compiler, you can also consider the following products

Virtual Windows 98 - Use Windows 98 in your browser

GNU Compiler Collection - The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting...

NASM - The Netwide Assembler, NASM, is an 80x86 and x86-64 assembler designed for portability and...

LLVM - LLVM is a compiler infrastructure designed for compile-time, link-time, run-time, and...

OpenRCT2 - Game engine recreation of RollerCoaster Tycoon 2 adding new features.

clang - C, C++, Objective C and Objective C++ front-end for the LLVM compiler.