A compiler as we all know is a program that translates source code into object code so that the code becomes executable, or we can say A compiler converts high level language code into a low level language code (assembly language).A compiler performs six major operations namely preprocessing, semantic analysis,lexical analysis, code generation, code optimization and parsing.
A compiler has basically 3 main parts. First is the front end that checks the semantics and syntax of the program and the errors are reported.Second, the middle end which does the optimization removing any unwanted or bad code.The last part is called the back end which translates the middle level intermediate representation or IR into the assembly language.
Processor registers are assigned. The back end also draws the schedule for the hardware units. Today we see a number of compilers available in the market like clang, Microsoft C, GCC, etc. C is still the favorite language of many programmers in the world. What makes it so special? It is its compiler. C compiler is better than any other language because it is small in size, so that you can execute a program everywhere. The C compiler is usually faster than any other language compiler. Furthermore there is no overhead byte code generated.
- You can use the dynamic C library directly.
- Most of the C compilers include memory and bound checker.
- Many C compilers are capable of running under windows XP and windows Vista and are also able to compile the command line.
- Most of them support integrated environment.
- C compilers are capable of handling multi- threaded programming and are good for exploiting dynamic parallelism which otherwise can make it difficult for passing messages.
- C compilers are algorithmic in nature and provide a scheduler to schedule the performance of the programs.
- They compile and link the codes very fast and they have a very powerful optimization technology.
- They come with a library source which is complete and brows able.
- They do extensive checking during the process of compilation.
- Some C compilers are safe from the risk of pointers and are capable of fast prototyping of the programs.
- They also don’t allow violation of array bonding.
- They can be run as interactive or non- interactive phases.
- They support enumerated data types, all data type variables like int, long, and float etc. some may also provide you with some sample programs to help you understand the features of the language.
- They are perfect for parallel computing. Global vectorization and optimization is also supported.
- These C compilers do inter procedural analysis. While doing optimization they give the user necessary feedback. They are able of transferring loops.
- C compilers are capable of code generation and give optimal performance from the processors.
- They simplify the execution thus, accelerating it. No limitations are imposed code size and optimization. They are very fast and accurate as compared to the compilers of other languages.
- Latest compilers are capable of building internet, distributed and windows applications. The code generation includes compiling, assembling, linking, resource compiling and adding library files.
- The integrated development includes editing, debugging, generating files and resource editing.
- They come with documentation and user’s manual.
- Most of the C compilers don’t come as freeware.
- C compilers require Windows 95 and other latest versions for implementing command lines.
- If a C compiler is supporting IDE, you need to have windows 2000 and following versions. The system should have a minimum of 32 MB of RAM and 500 MB of ROM.
We can say they are like many in one package which allow writing, developing, compiling, interpreting, assembling and debugging, and execution of the programs.
Sunday, September 11, 2011
Why C compilers are better than other language Compilers?
Posted by
Sunflower
at
9/11/2011 06:35:00 PM
1 comments
Labels: Advantages, Assembly Language, C, Code, Compile, Compiler, Compiling, Dynamic, Environment, High-level, Languages, Memory, Processor, Programming, Schedule, software engineering, System engineering
|
| Subscribe by Email |
|
Saturday, July 16, 2011
Introduction to Business Process Engineering?
System engineering helps to translate the needs of the customer into a system model that makes use of elements like software, hardware, people, database, documentation and procedures.
Business process engineering is a system engineering approach that defines architecture enabling a business to use the information more effectively and efficiently. It helps in creating an overall plan for implementing computing architecture.
There are three different types of architectures defined and developed keeping business goals in mind. These are:
- Data architectures provides a framework. Data objects used by business are building blocks. After defining the data objects, the relationships among them are identified. The data objects flow between business functions are organized within database and are transformed to provide information.
- Application architectures is a system of programs that transforms objects within data architecture for business purpose.
- Technology architecture provides the foundation for data and application architecture. It includes hardware and software used to support data and application.
The main aim of business process engineering is to derive data architecture, application architecture and technology infrastructure which will meet the needs, goals and objectives of the business.
Posted by
Sunflower
at
7/16/2011 11:38:00 AM
0
comments
Labels: Application, Approach, Architectures, BPE, Business process reengineering, Data architecture, Database, Framework, Goals, Hardware, Software Architecture, System engineering, Technology
|
| Subscribe by Email |
|
Tuesday, March 22, 2011
Overview of The Concurrent Development Model
The concurrent development model, sometimes called concurrent engineering The concurrent process model can be represented schematically as a series of major technical activities, tasks, and their associated states.
It makes use of state charts to represents the concurrentrelationship among tasks associated within a framework of activities. It isrepresented schematically by a series of major technical tasks, and associated states. The user's need, management decisions and review results drive theover-all progression of the development.
The concurrent model is often more appropriate for system engineering projects where different engineering teams are involved. The concurrent process model defines a series of events that will trigger transitions from state to state for each of software engineering activities, actions or tasks. This generates the event analysis model correction which will trigger the analysis action from done state to awaiting changes state.
The concurrent process model is applicable to all types of software development and provides an accurate picture of the current state of a project. Rather than confining software engineering activities, actions and tasks to a sequence of events, it defines a network of activities. Each activity on the network exists simultaneously with other activities, actions or tasks. Events generated at one point in the process network trigger transitions among the states.
Posted by
Sunflower
at
3/22/2011 05:19:00 PM
0
comments
Labels: Actions, activities, Analysis, Concurrent, Concurrent Development Model, Current, Development, Event handling, Network, Quality, Sates, System engineering, Tasks, Transitions, Trigger
|
| Subscribe by Email |
|
Wednesday, March 16, 2011
The System Engineering Hierarchy - System Modeling
Good system engineering begins with a clear understanding of context - the world view - and then progressively narrows focus until technical details are understood. System engineering encompasses a collection of top-down and bottom-up methods to navigate the hierarchy.
System engineering process begins with a world of view which is refined to focus more fully on a specific domain of interest. Within a specific domain, the need for targeted system elements is analyzed. Finally, the analysis, design, and construction of targeted system element is initiated. Broad context is established at the top of the hierarchy and at the bottom, detailed technical activities are conducted. It is important for a system engineer narrows the focus of work as one moves downward in the hierarchy.
System modeling is an important element of system engineering process. System engineering model accomplishes the following:
- define processes.
- represent behavior of the process.
- define both exogenous and endogenous input to model.
- represent all linkages.
Some restraining factors that are considered to construct a system model are:
- Assumptions that reduce number of possible permutations and variations thus enabling a model to reflect the problem in a reasonable manner.
- Simplifications that enable the model to be created in a timely manner.
- Limitations that help to bound the system.
- Constraints that will guide the manner in which the model is created and the approach taken when the model is implemented.
- Preferences that indicate the preferred architecture for all data, functions , and technology.
The resultant system model may call for a completely automated or semi automated or a non automated solution.
Posted by
Sunflower
at
3/16/2011 03:56:00 PM
0
comments
Labels: Constraints, Context, Context Diagram, Doamin, Encompasses, Factors, Focus areas, Hierarchy, Implemented, Input, Models, Output, System engineering, System Modeling
|
| Subscribe by Email |
|