Language Design and Implementation
VerifiedAdded on  2023/04/22
|12
|2495
|268
AI Summary
This study explores the new features that can be included as a new code in the existing programming languages. It covers topics such as languages for mobile software development or AI, collaborative software development, effective IDEs and tools, garbage collection vs performance, advance type systems, code running on highly constrained devices, blockchain leaders vs conventional recordkeeping, distributed applications, COBOL 60 in games, FORTRAN 77 for multimedia, incremental compilation, declarative vs imperative languages and more.
Contribute Materials
Your contribution can guide someone’s learning journey. Share your
documents today.
Running head: LANGUAGE DESIGN AND IMPLEMENTATION
LANGUAGE DESIGN AND IMPLEMENTATION
Name of the Student
Name of the University
Author Note
LANGUAGE DESIGN AND IMPLEMENTATION
Name of the Student
Name of the University
Author Note
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
LANGUAGE DESIGN AND IMPLEMENTATION 1
Abstract:
The purpose of this study is to find out the new features that can be included as a new code in
the existing programming languages. The modern hardware is fast compared to the old ones
with larger storage capacity as well as network capacity is also increased. The availability of
compilers, editors and debugger is also more than sufficient for supporting a new language.
Abstract:
The purpose of this study is to find out the new features that can be included as a new code in
the existing programming languages. The modern hardware is fast compared to the old ones
with larger storage capacity as well as network capacity is also increased. The availability of
compilers, editors and debugger is also more than sufficient for supporting a new language.
2LANGUAGE DESIGN AND IMPLEMENTATION
Table of Contents
Introduction:...............................................................................................................................3
Languages for mobile software development or AI:..................................................................3
Collaborative software development:........................................................................................3
`Effective IDEs and tools:..........................................................................................................4
Garbage collection vs performance:...........................................................................................4
Advance type systems:...............................................................................................................5
Code running on highly constrained devices:............................................................................5
Blockchain leaders vs conventional recordkeeping:..................................................................6
Distributed applications:............................................................................................................7
COBOL 60 in games:.................................................................................................................7
FORTRAN 77 for multimedia:..................................................................................................7
Incremental compilation:...........................................................................................................8
Declarative vs imperative languages:.........................................................................................8
Conclusion:................................................................................................................................9
Bibliography:..............................................................................................................................9
Table of Contents
Introduction:...............................................................................................................................3
Languages for mobile software development or AI:..................................................................3
Collaborative software development:........................................................................................3
`Effective IDEs and tools:..........................................................................................................4
Garbage collection vs performance:...........................................................................................4
Advance type systems:...............................................................................................................5
Code running on highly constrained devices:............................................................................5
Blockchain leaders vs conventional recordkeeping:..................................................................6
Distributed applications:............................................................................................................7
COBOL 60 in games:.................................................................................................................7
FORTRAN 77 for multimedia:..................................................................................................7
Incremental compilation:...........................................................................................................8
Declarative vs imperative languages:.........................................................................................8
Conclusion:................................................................................................................................9
Bibliography:..............................................................................................................................9
3LANGUAGE DESIGN AND IMPLEMENTATION
Introduction:
There are different paradigms in programming language. There are two types of main
camps, along with the language in front. One of them is static languages and another one is
dynamic languages. The purpose of this paper is to find how to develop a new code as all the
facilities are available like more CPU speed, modern hardware, great network capacity.
Python is one of the most popular language. According to Lyu et al. (2016) Python is a
dynamically typed language, which was convicted by Guido van Rossum in late 1980s at the
Centrum Wiskunde & Informatica (CWI) in Netherlands and the implementation of it began
in December, 1989. Python is so easy to learn even for people having non-technical
backgrounds. There is not any glaring hole in the design of it. As well as python is so
versatile that programmers can do almost everything such as website development to
scientific modelling, also, it is very fast to write. Most of the popular web based applications
such as Google, YouTube, Instagram is made on python and there is a huge role of python in
machine learning. Therefore, python is dynamically typed, which means the value type is
decided only at runtime not in advance.
Languages for mobile software development or AI:
There are so many coding languages for mobile app development. To build up a
mobile app some necessary tools will be needed. Five top most programming languages for
mobile app development are BuildFire.js, Python, Java, PHP and C++.
Python is one of the most popular programming languages. It is used by the top app
development companies, Python is a professional coding language and it is for the
development of software. Due to its simplicity, Python is always considered in first place
compared to other AI development languages. The syntaxes that belong to python are so
Introduction:
There are different paradigms in programming language. There are two types of main
camps, along with the language in front. One of them is static languages and another one is
dynamic languages. The purpose of this paper is to find how to develop a new code as all the
facilities are available like more CPU speed, modern hardware, great network capacity.
Python is one of the most popular language. According to Lyu et al. (2016) Python is a
dynamically typed language, which was convicted by Guido van Rossum in late 1980s at the
Centrum Wiskunde & Informatica (CWI) in Netherlands and the implementation of it began
in December, 1989. Python is so easy to learn even for people having non-technical
backgrounds. There is not any glaring hole in the design of it. As well as python is so
versatile that programmers can do almost everything such as website development to
scientific modelling, also, it is very fast to write. Most of the popular web based applications
such as Google, YouTube, Instagram is made on python and there is a huge role of python in
machine learning. Therefore, python is dynamically typed, which means the value type is
decided only at runtime not in advance.
Languages for mobile software development or AI:
There are so many coding languages for mobile app development. To build up a
mobile app some necessary tools will be needed. Five top most programming languages for
mobile app development are BuildFire.js, Python, Java, PHP and C++.
Python is one of the most popular programming languages. It is used by the top app
development companies, Python is a professional coding language and it is for the
development of software. Due to its simplicity, Python is always considered in first place
compared to other AI development languages. The syntaxes that belong to python are so
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
4LANGUAGE DESIGN AND IMPLEMENTATION
simple, easily learnable and the developers can also implement the AI algorithms easily.
Python takes less time for development compared to other languages such as Lisp or Prolog.
Collaborative software development:
Collaboration software is designed basically for enhancing the productivity within the
organizations or within one group of the individuals. In this concept of collaborative software
development an organization divide a work among a group of people and there will always a
team leader, during the work progress each member should report the team lead about the
progress update. Collaborative software development makes the management or development
of a software much easier because the whole work is divided to expertise persons only.
`Effective IDEs and tools:
An IDE or Integrated Development Environment is dedicated program specially
designed to develop software. Most of the IDEs support so many different types of coding
languages and can have so many features. Therefore, the IDEs can be large and it will take
time for downloading as well as for the installation. Requirements for good environment for
coding:
 Reload and save code files: The IDE must save the code for later access for the user.
As the file must be saved in the main memory for reopening.
 Debugging support: Debugging is the core feature of IDE.
 Syntax highlighting: The ability of spotting keywords quickly, symbols and variables
in the code makes the understanding and reading much easier.
 Automatic code formatting: In IDE or any editor, the colon must be recognized at the
end of the for or while statement and the next indented line should be known.
simple, easily learnable and the developers can also implement the AI algorithms easily.
Python takes less time for development compared to other languages such as Lisp or Prolog.
Collaborative software development:
Collaboration software is designed basically for enhancing the productivity within the
organizations or within one group of the individuals. In this concept of collaborative software
development an organization divide a work among a group of people and there will always a
team leader, during the work progress each member should report the team lead about the
progress update. Collaborative software development makes the management or development
of a software much easier because the whole work is divided to expertise persons only.
`Effective IDEs and tools:
An IDE or Integrated Development Environment is dedicated program specially
designed to develop software. Most of the IDEs support so many different types of coding
languages and can have so many features. Therefore, the IDEs can be large and it will take
time for downloading as well as for the installation. Requirements for good environment for
coding:
 Reload and save code files: The IDE must save the code for later access for the user.
As the file must be saved in the main memory for reopening.
 Debugging support: Debugging is the core feature of IDE.
 Syntax highlighting: The ability of spotting keywords quickly, symbols and variables
in the code makes the understanding and reading much easier.
 Automatic code formatting: In IDE or any editor, the colon must be recognized at the
end of the for or while statement and the next indented line should be known.
5LANGUAGE DESIGN AND IMPLEMENTATION
Garbage collection vs performance:
There are two types of garbage collection: one is automatic garbage collection and
another one is manual garbage collection. Most of the common problem in performance
associated with programming such as python related to the garbage collection mechanism. If
the heap size is just too large to handle, it must be kept outside the main memory because, it
can increase the paging activity and which has an huge effect in performance. There are two
mechanism in python for the garbage collection:
 Reference counting: When number of the references is pointing to that reaches zero
then the objects or object gets detected.
 Reference cycle detection: To find the isolated reference cycles which can not be
detected from the reference counting, this method can be used.
Advance type systems:
For designing or implementation of the programming language advance type system
is needed. Language designing is an art and a craft that means there are no unambiguous and
clear rules. Some features of this are:
 Generality
 Decidability
 Accuracy
 Brevity
 Efficiency
 Elegance.
Garbage collection vs performance:
There are two types of garbage collection: one is automatic garbage collection and
another one is manual garbage collection. Most of the common problem in performance
associated with programming such as python related to the garbage collection mechanism. If
the heap size is just too large to handle, it must be kept outside the main memory because, it
can increase the paging activity and which has an huge effect in performance. There are two
mechanism in python for the garbage collection:
 Reference counting: When number of the references is pointing to that reaches zero
then the objects or object gets detected.
 Reference cycle detection: To find the isolated reference cycles which can not be
detected from the reference counting, this method can be used.
Advance type systems:
For designing or implementation of the programming language advance type system
is needed. Language designing is an art and a craft that means there are no unambiguous and
clear rules. Some features of this are:
 Generality
 Decidability
 Accuracy
 Brevity
 Efficiency
 Elegance.
6LANGUAGE DESIGN AND IMPLEMENTATION
Code running on highly constrained devices:
Typically, an architecture of the IoT solutions structured of constrained devices, cloud
platforms and the border routers or gateways. There are two types of devices, one is
constrained devices and another one is gateway devices. The constrained devices are the end
node having actuators or sensors, which can handle the purpose of a specific application.
Usually they are connected with the gateway like devices and the networks where power loss
is low and in turn it communicates with IoT related cloud platform Typically, they maintain
the communication through less powered wireless protocols such as 802.15.4 (Thread,
Zigbee, Wireless HART and 6LoWPAN), LPWAN as well as devices with more battery
power and low data rate.
(Fig.1- Source - Alpaydin, E., 2016)
The constrains of the devices are:
 Code complexity
 Cost
 User interface in deployment
 Physical size
 Bitrate
Code running on highly constrained devices:
Typically, an architecture of the IoT solutions structured of constrained devices, cloud
platforms and the border routers or gateways. There are two types of devices, one is
constrained devices and another one is gateway devices. The constrained devices are the end
node having actuators or sensors, which can handle the purpose of a specific application.
Usually they are connected with the gateway like devices and the networks where power loss
is low and in turn it communicates with IoT related cloud platform Typically, they maintain
the communication through less powered wireless protocols such as 802.15.4 (Thread,
Zigbee, Wireless HART and 6LoWPAN), LPWAN as well as devices with more battery
power and low data rate.
(Fig.1- Source - Alpaydin, E., 2016)
The constrains of the devices are:
 Code complexity
 Cost
 User interface in deployment
 Physical size
 Bitrate
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
7LANGUAGE DESIGN AND IMPLEMENTATION
 Available source of power (Battery)
 Processing power
Blockchain leaders vs conventional recordkeeping:
With the shift to the networked and digital commerce communication, most of the
financial assets exist as pure digital records. Sometimes the blockchain can be risky but there
are well opportunities too. The risks of Bitcoin are known as terrorist financing, money
laundering and tax evasion. From a perspective of record keeping the risks of blockchain
cluster around control in organizations, authenticity and reliability and monetization.
Distributed applications:
Distributed applications can allow one for the improvement of performance and
resiliency. The place where the provided benefits is more significant than complexity. There
are two specific methods to implement the distributed applications in python. The two
systems are celery and crossbar. Celery is more mature, far better and older than Crossbar.
Celery is highly configurable and flexible and provides a mature and stable distributed task
focusing on the real time execution. On the other side, compared to celery, crossbar is a new
project also; celery is less known to the user. The users get a very pleasant working
atmosphere within crossbar. Crossbar functions similar like a WAMP router, which is
basically a routed messaging protocol based on Web Sockets which provided Pub Sub and
RPC.
COBOL 60 in games:
COBOL 60 was developed for business purpose and at present the company step
towards the next foot step that is for the video games. As Cobol 60 was using in business it
has a major level of security to provide to its users so, the developers are using this language
 Available source of power (Battery)
 Processing power
Blockchain leaders vs conventional recordkeeping:
With the shift to the networked and digital commerce communication, most of the
financial assets exist as pure digital records. Sometimes the blockchain can be risky but there
are well opportunities too. The risks of Bitcoin are known as terrorist financing, money
laundering and tax evasion. From a perspective of record keeping the risks of blockchain
cluster around control in organizations, authenticity and reliability and monetization.
Distributed applications:
Distributed applications can allow one for the improvement of performance and
resiliency. The place where the provided benefits is more significant than complexity. There
are two specific methods to implement the distributed applications in python. The two
systems are celery and crossbar. Celery is more mature, far better and older than Crossbar.
Celery is highly configurable and flexible and provides a mature and stable distributed task
focusing on the real time execution. On the other side, compared to celery, crossbar is a new
project also; celery is less known to the user. The users get a very pleasant working
atmosphere within crossbar. Crossbar functions similar like a WAMP router, which is
basically a routed messaging protocol based on Web Sockets which provided Pub Sub and
RPC.
COBOL 60 in games:
COBOL 60 was developed for business purpose and at present the company step
towards the next foot step that is for the video games. As Cobol 60 was using in business it
has a major level of security to provide to its users so, the developers are using this language
8LANGUAGE DESIGN AND IMPLEMENTATION
to develop a new pattern for developing COBOL 60 in video games. As there are so many
features offered in COBOL 60 so the developers have too many places to develop a great
game for the users as mobile gaming is too popular at present for the users of mobile or iPad.
FORTRAN 77 for multimedia:
Multimedia is a big thing at present as well as the current generation is addicted in
media. Fortran 77 can be used for developing the multimedia section in mobile devices as it
is too old now but the developers can use this language to make new implementation in it and
that can be so useful for the users too.
Incremental compilation:
Incremental compilation is a concept where the compilation can be faster. As in the
old concept after compilation of the full code, if the programmer need to change a small part
or want to add something, the entire code will need to be compiled again. To reduce the
compilation time incremental compilation was introduced. At present, programmers don’t
need to compile the whole code, only the changed part will be compiled by the compiler. As
a result, the compilation time is reduced. At present this is turned on as a default feature,
which means the builds should be faster. Though, incremental compilation makes faster build
but it makes the finalized binary a little bit slower.
Declarative vs imperative languages:
Declarative language Imperative language
1. Declarative language in programming is
a paradigm, which expresses a
computational logic without describing the
1. On the other side, Imperative language in
programming is a paradigm, which uses
some statements that totally change the state
to develop a new pattern for developing COBOL 60 in video games. As there are so many
features offered in COBOL 60 so the developers have too many places to develop a great
game for the users as mobile gaming is too popular at present for the users of mobile or iPad.
FORTRAN 77 for multimedia:
Multimedia is a big thing at present as well as the current generation is addicted in
media. Fortran 77 can be used for developing the multimedia section in mobile devices as it
is too old now but the developers can use this language to make new implementation in it and
that can be so useful for the users too.
Incremental compilation:
Incremental compilation is a concept where the compilation can be faster. As in the
old concept after compilation of the full code, if the programmer need to change a small part
or want to add something, the entire code will need to be compiled again. To reduce the
compilation time incremental compilation was introduced. At present, programmers don’t
need to compile the whole code, only the changed part will be compiled by the compiler. As
a result, the compilation time is reduced. At present this is turned on as a default feature,
which means the builds should be faster. Though, incremental compilation makes faster build
but it makes the finalized binary a little bit slower.
Declarative vs imperative languages:
Declarative language Imperative language
1. Declarative language in programming is
a paradigm, which expresses a
computational logic without describing the
1. On the other side, Imperative language in
programming is a paradigm, which uses
some statements that totally change the state
9LANGUAGE DESIGN AND IMPLEMENTATION
control flow of this of a program.
2. Code all steps in the form of covetable
outcome.
2. Code the covetable outcomes without any
of the steps.
3. Only the problem is provided to the
machine by the user but the computer itself
figure out the way to do it.
3. Instructions are given to the machine
about how to do the work and the user will
get the result as wanted previously.
Conclusion:
Thus it can be concluded that, at present language design is much easier for the
developers. Because, the thing that are needed to implement or to develop a new code is more
than sufficiently available such as modern hardware or network speed. The whole world is
developing presently and machine learning or artificial intelligence is playing a great role in
it. So, it can be said that coding is the best part in technology development.
control flow of this of a program.
2. Code all steps in the form of covetable
outcome.
2. Code the covetable outcomes without any
of the steps.
3. Only the problem is provided to the
machine by the user but the computer itself
figure out the way to do it.
3. Instructions are given to the machine
about how to do the work and the user will
get the result as wanted previously.
Conclusion:
Thus it can be concluded that, at present language design is much easier for the
developers. Because, the thing that are needed to implement or to develop a new code is more
than sufficiently available such as modern hardware or network speed. The whole world is
developing presently and machine learning or artificial intelligence is playing a great role in
it. So, it can be said that coding is the best part in technology development.
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
10LANGUAGE DESIGN AND IMPLEMENTATION
Bibliography:
Alpaydin, E., 2016. Machine learning: the new AI. MIT press.
Brady, E., 2013. Idris, a general-purpose dependently typed programming language: Design
and implementation. Journal of Functional Programming, 23(5), pp.552-593.
De Nicola, R., Latella, D., Lafuente, A.L., Loreti, M., Margheri, A., Massink, M., Morichetta,
A., Pugliese, R., Tiezzi, F. and Vandin, A., 2015. The SCEL language: Design,
implementation, verification. In Software Engineering for Collective Autonomic Systems (pp.
3-71). Springer, Cham.
Edwards, S.H., Tilden, D.S. and Allevato, A., 2014, March. Pythy: improving the
introductory python programming experience. In Proceedings of the 45th ACM technical
symposium on Computer science education (pp. 641-646). ACM.
Gay, D., Levis, P., Von Behren, R., Welsh, M., Brewer, E. and Culler, D., 2014. The nesC
language: A holistic approach to networked embedded systems. Acm Sigplan Notices, 49(4),
pp.41-51.
Jordan, M.I. and Mitchell, T.M., 2015. Machine learning: Trends, perspectives, and
prospects. Science, 349(6245), pp.255-260.
Lyu, R.Y., Kuo, Y.H. and Liu, C.N., 2016, December. Machine translation of english
identifiers in python programs into traditional chinese. In 2016 International Computer
Symposium (ICS) (pp. 622-625). IEEE.
Padalia, K. and Fung, R., Altera Corp, 2013. Method and apparatus for performing efficient
incremental compilation. U.S. Patent 8,539,418.
Bibliography:
Alpaydin, E., 2016. Machine learning: the new AI. MIT press.
Brady, E., 2013. Idris, a general-purpose dependently typed programming language: Design
and implementation. Journal of Functional Programming, 23(5), pp.552-593.
De Nicola, R., Latella, D., Lafuente, A.L., Loreti, M., Margheri, A., Massink, M., Morichetta,
A., Pugliese, R., Tiezzi, F. and Vandin, A., 2015. The SCEL language: Design,
implementation, verification. In Software Engineering for Collective Autonomic Systems (pp.
3-71). Springer, Cham.
Edwards, S.H., Tilden, D.S. and Allevato, A., 2014, March. Pythy: improving the
introductory python programming experience. In Proceedings of the 45th ACM technical
symposium on Computer science education (pp. 641-646). ACM.
Gay, D., Levis, P., Von Behren, R., Welsh, M., Brewer, E. and Culler, D., 2014. The nesC
language: A holistic approach to networked embedded systems. Acm Sigplan Notices, 49(4),
pp.41-51.
Jordan, M.I. and Mitchell, T.M., 2015. Machine learning: Trends, perspectives, and
prospects. Science, 349(6245), pp.255-260.
Lyu, R.Y., Kuo, Y.H. and Liu, C.N., 2016, December. Machine translation of english
identifiers in python programs into traditional chinese. In 2016 International Computer
Symposium (ICS) (pp. 622-625). IEEE.
Padalia, K. and Fung, R., Altera Corp, 2013. Method and apparatus for performing efficient
incremental compilation. U.S. Patent 8,539,418.
11LANGUAGE DESIGN AND IMPLEMENTATION
Peng, X., Babar, M.A. and Ebert, C., 2014. Collaborative software development platforms for
crowdsourcing. IEEE software, 31(2), pp.30-36.
Politz, J.G., Martinez, A., Milano, M., Warren, S., Patterson, D., Li, J., Chitipothu, A. and
Krishnamurthi, S., 2013, October. Python: the full monty. In ACM SIGPLAN Notices (Vol.
48, No. 10, pp. 217-232). ACM.
Tolpin, D., van de Meent, J.W., Yang, H. and Wood, F., 2016. Design and implementation of
probabilistic programming language anglican. arXiv preprint arXiv:1608.05263.
Zhang, D., Wang, Y., Suh, G.E. and Myers, A.C., 2015. A hardware design language for
timing-sensitive information-flow security. ACM SIGARCH Computer Architecture
News, 43(1), pp.503-516.
Peng, X., Babar, M.A. and Ebert, C., 2014. Collaborative software development platforms for
crowdsourcing. IEEE software, 31(2), pp.30-36.
Politz, J.G., Martinez, A., Milano, M., Warren, S., Patterson, D., Li, J., Chitipothu, A. and
Krishnamurthi, S., 2013, October. Python: the full monty. In ACM SIGPLAN Notices (Vol.
48, No. 10, pp. 217-232). ACM.
Tolpin, D., van de Meent, J.W., Yang, H. and Wood, F., 2016. Design and implementation of
probabilistic programming language anglican. arXiv preprint arXiv:1608.05263.
Zhang, D., Wang, Y., Suh, G.E. and Myers, A.C., 2015. A hardware design language for
timing-sensitive information-flow security. ACM SIGARCH Computer Architecture
News, 43(1), pp.503-516.
1 out of 12
Related Documents
Your All-in-One AI-Powered Toolkit for Academic Success.
 +13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
© 2024  |  Zucol Services PVT LTD  |  All rights reserved.