Assembly writer vs compiler in VLIW architectureConversion from assembly program to low-level machine languageWhat do I need to study in order to understand and design a programming language?What defines a tool as a “compiler”is the problem of parallelising any program, NP-complete?What's the advantage of typed assembly?Implementing a Compiler with MacrosThe difference between compiler and interpreterIs it possible to tell if two sequences of assembly instructions are semantically equivalent?High Level Assemblers vs Compilers?Do “compiler” and “assembler” correspond to frontend and backend phases of a compiler?
How do you deal with an abrupt change in personality for a protagonist?
How to extract lower and upper bound in numeric format from a confidence interval string?
Can a Beholder use rays in melee range?
Why colon to denote that a value belongs to a type?
Were pen cap holes designed to prevent death by suffocation if swallowed?
Simple linked list with two iterators
Different PCB color ( is it different material? )
Inverter Power draw from 12V battery
Is this story about US tax office reasonable?
What does the behaviour of water on the skin of an aircraft in flight tell us?
How to prevent bad sectors?
Apparent Ring of Craters on the Moon
How were these pictures of spacecraft wind tunnel testing taken?
Infinitely many hats
Why does the 6502 have the BIT instruction?
What is the difference between nullifying your vote and not going to vote at all?
Modern approach to radio buttons
What caused the tendency for conservatives to not support climate change reform?
Draw a checker pattern with a black X in the center
Restoring order in a deck of playing cards
Plot exactly N bounce of a ball
Where did the “Vikings wear helmets with horn” stereotype come from and why?
What is the best linguistic term for describing the kw > p / gw > b change, and its usual companion s > h
What's the connection between "kicking a pigeon" and "how a bill becomes a law"?
Assembly writer vs compiler in VLIW architecture
Conversion from assembly program to low-level machine languageWhat do I need to study in order to understand and design a programming language?What defines a tool as a “compiler”is the problem of parallelising any program, NP-complete?What's the advantage of typed assembly?Implementing a Compiler with MacrosThe difference between compiler and interpreterIs it possible to tell if two sequences of assembly instructions are semantically equivalent?High Level Assemblers vs Compilers?Do “compiler” and “assembler” correspond to frontend and backend phases of a compiler?
$begingroup$
I read this sentence in a book:
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel.
What is the difference between assembly writer and compiler? Would an assembly writer also mean the same as assembler?
compilers assembly
$endgroup$
add a comment |
$begingroup$
I read this sentence in a book:
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel.
What is the difference between assembly writer and compiler? Would an assembly writer also mean the same as assembler?
compilers assembly
$endgroup$
add a comment |
$begingroup$
I read this sentence in a book:
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel.
What is the difference between assembly writer and compiler? Would an assembly writer also mean the same as assembler?
compilers assembly
$endgroup$
I read this sentence in a book:
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel.
What is the difference between assembly writer and compiler? Would an assembly writer also mean the same as assembler?
compilers assembly
compilers assembly
edited May 15 at 5:11
Discrete lizard♦
5,10311642
5,10311642
asked May 14 at 5:02
Dasha ShamDasha Sham
435
435
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
The "assembly writer" in that book is a human software developer who writes code in assembler language.
$endgroup$
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
|
show 6 more comments
$begingroup$
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel
The meaning of this sentence is that in VLIW architecture, assembler (machine) code defines which instruction will be executed in parallel, so it's fixed at the time assembly code is written by a human or generated by a compiler.
This differs from super-scalar cpus, where instructions may be executed in parallel, this is a decision made by CPU each time it executes the instructions.
There are also CPUs that combine both approaches - Itanium2 is backward-compatible with Itanium, packing 3 instructions into VLIW word. But, afair, Itanium2 can execute two such packs in the single CPU cycle, and this decision is made at execution time.
$endgroup$
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "419"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f109326%2fassembly-writer-vs-compiler-in-vliw-architecture%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
The "assembly writer" in that book is a human software developer who writes code in assembler language.
$endgroup$
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
|
show 6 more comments
$begingroup$
The "assembly writer" in that book is a human software developer who writes code in assembler language.
$endgroup$
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
|
show 6 more comments
$begingroup$
The "assembly writer" in that book is a human software developer who writes code in assembler language.
$endgroup$
The "assembly writer" in that book is a human software developer who writes code in assembler language.
answered May 14 at 6:30
gnasher729gnasher729
13.3k1824
13.3k1824
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
|
show 6 more comments
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
15
15
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
$begingroup$
1. interpreter doesn't convert anything to assembly language. 2. Any tool that converts source code to assembly language is by definition a compiler.
$endgroup$
– gnasher729
May 14 at 7:10
4
4
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
$begingroup$
@KellyS.French an assembler converts assembly language code to machine code, so with this definition it isn't a compiler. If, however, you have a tool that converts one assembly language into another (e.g. ARBfp1.0 to native assembly language of a modern GPU), this tool is a compiler (with this definition).
$endgroup$
– Ruslan
May 14 at 19:38
1
1
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
$begingroup$
@gnasher729 - nitpick: by most definitions, the "Assembly language" part of (2) is unnecessary (notably, things like the typescript compiler or the java compiler, neither of which compile the source to assembly, but compile to javascript or java bytecode respectively). More recently it generally means any tool which compiles one programming language into another programming language (and assembly is technically a programming language).
$endgroup$
– Delioth
May 14 at 21:11
1
1
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
$begingroup$
@KellyS.French: A compiler is a program that translates a program in language X into a semantically equivalent program in language Y. Depending on what exactly the languages X and Y are, we have special names for those compilers, and "assembler" is one of those special names. But they are all special kinds of compilers. E.g. if Y = assembly and X is higher-level than Y, then we call it an assembler. If Y = assembly and X is lower-level than Y, we call it a disassembler. If X is lower-level than Y and Y != assembly, we call it a de-compiler. If X and Y are the same level, recent usage would …
$endgroup$
– Jörg W Mittag
May 15 at 12:48
1
1
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
$begingroup$
@KellyS.French: I guess the reason why assemblers aren't typically talked about much in terms of compilers is that assemblers are very boring compilers. At its core, an assembler is just a 1:1 mapping of human-readable mnemonics to machine-readable opcodes. The parsing stage is simple, there are no types, there are no optimizations, the code generation is trivial. None of the interesting algorithmitic stuff that compilers do is present: parsing a complex language, type checking, type inference, optimizations, clever mapping of semantics etc.
$endgroup$
– Jörg W Mittag
May 16 at 5:10
|
show 6 more comments
$begingroup$
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel
The meaning of this sentence is that in VLIW architecture, assembler (machine) code defines which instruction will be executed in parallel, so it's fixed at the time assembly code is written by a human or generated by a compiler.
This differs from super-scalar cpus, where instructions may be executed in parallel, this is a decision made by CPU each time it executes the instructions.
There are also CPUs that combine both approaches - Itanium2 is backward-compatible with Itanium, packing 3 instructions into VLIW word. But, afair, Itanium2 can execute two such packs in the single CPU cycle, and this decision is made at execution time.
$endgroup$
add a comment |
$begingroup$
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel
The meaning of this sentence is that in VLIW architecture, assembler (machine) code defines which instruction will be executed in parallel, so it's fixed at the time assembly code is written by a human or generated by a compiler.
This differs from super-scalar cpus, where instructions may be executed in parallel, this is a decision made by CPU each time it executes the instructions.
There are also CPUs that combine both approaches - Itanium2 is backward-compatible with Itanium, packing 3 instructions into VLIW word. But, afair, Itanium2 can execute two such packs in the single CPU cycle, and this decision is made at execution time.
$endgroup$
add a comment |
$begingroup$
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel
The meaning of this sentence is that in VLIW architecture, assembler (machine) code defines which instruction will be executed in parallel, so it's fixed at the time assembly code is written by a human or generated by a compiler.
This differs from super-scalar cpus, where instructions may be executed in parallel, this is a decision made by CPU each time it executes the instructions.
There are also CPUs that combine both approaches - Itanium2 is backward-compatible with Itanium, packing 3 instructions into VLIW word. But, afair, Itanium2 can execute two such packs in the single CPU cycle, and this decision is made at execution time.
$endgroup$
In VLIW architecture, the compiler/and or assembly writer chooses instructions that can be executed in parallel
The meaning of this sentence is that in VLIW architecture, assembler (machine) code defines which instruction will be executed in parallel, so it's fixed at the time assembly code is written by a human or generated by a compiler.
This differs from super-scalar cpus, where instructions may be executed in parallel, this is a decision made by CPU each time it executes the instructions.
There are also CPUs that combine both approaches - Itanium2 is backward-compatible with Itanium, packing 3 instructions into VLIW word. But, afair, Itanium2 can execute two such packs in the single CPU cycle, and this decision is made at execution time.
answered May 14 at 7:29
BulatBulat
1,231612
1,231612
add a comment |
add a comment |
Thanks for contributing an answer to Computer Science Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f109326%2fassembly-writer-vs-compiler-in-vliw-architecture%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown