Yes - sometimes. But more likely is that people who write decent, maintainable code do it in a higher level language. What I mean by that is that the few people that does beat the compiler becomes even fewer as time goes by, due to the compiler vendors increased optimization of compilers.
If the vendors puts in efforts to optimize high level language year after year, it becomes really difficult to beat that for a(n average) programmer. It does happen, but I'd say the wast majority of programmers will produce faster/smaller working code using a high level language than if they were using assembler. At least I will trip on NOT making a executable that works in assembler.
My friend and I were Speccy/MSX (Z80A) but most kids had a C64 (6510). To us the divide seemed to be that we were mostly programming and the C64 crowd mostly played games. Probably had something to do with how many C64s there were.
I've just noticed there's a book /Raspberry Pi Assembly Language RASPBIAN Beginners: Hands On Guide/ by Bruce Smith. I know nothing about it beyond that it exists and has a clumsy title (is *really* called /Raspberry Pi Assembly Language RASPBIAN Beginners: Hands On Guide/?).
--
Do, as a concession to my poor wits, Lord Darlington, just explain
to me what you really mean.
I think I had better not, Duchess. Nowadays to be intelligible is
to be found out. -- Oscar Wilde, Lady Windermere's Fan
There are two versions of the book - 'Raspbian beginners' and 'RISC OS beginners'. The first edition was 'Beginners Hands on Guide' which was for RISC OS but not specifically named in the title - after comments that this was confusing the author produced two different versions in the second edition.
Bruce Smith wrote one of the canonical 1980s ARM assembly books and I think this book covers the area in a more up to date form, though I haven't seen it. (He also has a RPi RISC OS System Programming book I commented on when it was in draft form).
While the multi-process scheme worked out to have those benefits, that may not have been the intended purpose. From this page:
formatting link
In the second paragraph of the 'History' section:
The language was not initially designed with portability in mind, ...
From this page:
formatting link
In the paragraph above the 'Portability' heading:
The preprocessor was originally considered an optional adjunct to the language itself.
The Wikipedia article referenced above says C was originally developed on/for the PDP-11. If I understand/remember correctly, the PDP-11 had some serious per-process memory limitations. Breaking the compiler up into multiple processes would have reduced or eliminated the need to use (ugly) overlays to fit within those memory limitations. It's just a guess on my part, but I would think the per-process memory limitations may well have been a large part of the reason the compiler was broken into multiple processes.
HTH
--
Robert Riches
spamtrap42@jacob21819.net
(Yes, that is one of my email addresses.)
I designed the Z80 board for the Torch, designed CPN and wrote the Z80 part of it (Ray Anderson did the 6502 end) in my first job after college. Earlier I worked on the Newbrain hardware as a student. I got involved in a lot of discussions with other programmers at the time over which was better, some got quite heated.
--
Steve O'Hara-Smith | Directable Mirror Arrays
C:>WIN | A better way to focus the sun
The computer obeys and wins. | licences available see
You lose and Bill collects. | http://www.sohara.org/
And Ex employee or ARM told me that the reason the chip is so limited in instruction sets and very very RISC is that that (not many transistors) is how they could afford the chip fab!
Some years later, they realised that also made it very very low power consumption as well...
It wouldn't be the first time that a piece of technology was designed one way for a reason, and subsequently proved very successful for a different context that it happened to suit rather well.
Cellular phone technology was developed for battlefield secure communications and TCP/IP was a network designed to withstand nuclear attack...
Isn't the pi a chipset designed for set top boxes or summat?
--
A lie can travel halfway around the world while the truth is putting on
its shoes.
--
"Socialist governments traditionally do make a financial mess. They
always run out of other people's money. It's quite a characteristic of them"
Margaret Thatcher
Note that I said 'multi-module', not 'multi-process'. In *NIXEN, at least, there is a difference. I meant to emphasise that, while the modules could all be run sequentially to generate an executable from source, they need not all be used and/or one or more could be run separately from the others.
OTOH to me, at least 'multiprocess' implies simultaneous parallel execution.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
My old Apple II+ had the 6502 and a Z-80 card (CPM) It still limps along, due to floppy drives, a 65C02 and numerous other "minor" difficulties. One of my favorites was a Midi utility I wrote that used the graphics screen RAM as buffer space, and incidentally displaying the midi data in a color graphic pattern. Originally, it was written to jam bulk load midi songs into one of the old Yamaha keyboards, and to extract songs from the same unit. There were some severe memory limits that the utility had to fit in to avoid getting stepped on by other software, yet be usable from basic.
I was writing 8085 and 80x86 assembler in the 80's. Presumably I had been very wicked in an earlier life.
--
Do, as a concession to my poor wits, Lord Darlington, just explain
to me what you really mean.
I think I had better not, Duchess. Nowadays to be intelligible is
to be found out. -- Oscar Wilde, Lady Windermere's Fan
I think that just reflects the sort of programming gigs you got.
In the late 60s I was programming ICL mainframes, initially in PLAN assembler and later in COBOL and with the rather good MacroGenerator, which was powerful enough to let you define what were effectively special purpose programming language. We had one that was used to extract salary survey data from punched cards, ready to be sorted and fed to a COBOL analysis program which did the analysis. The other one we used read A4 forms using an optical mark reader and output the data in a form that could be understood by COBOL or assembler programs.
In both cases the macrogenerator was used to define the raw data input format, read and validate it, and write the clean data to serial files in a standard format.
After that it just happened that the projects I worked on professionally never had a requirement for assembler programming. After that C and TAL were the lowest level languages required. TAL was the system programming language used in Tandem Nonstop fault tolerant computers. It looked like one of the Algols (using begin...end rather than {...}) but was otherwise pretty much equivalent to C or PL/M.
These projects for a variety on mainframes, fault-tolerant computers and minicomputers, but nothing that would have been smaller than a VAX, so as a consequence, all were programmed in higher-level languages and/or involved designing/implementing/tuning databases.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
That's understandable. "Beginners Hands on Guide" could mean many different things.
Why, for example, would the Guide have beginners' hands on him...? Let's say it is for a bit of practice at faith healing. I'll avoid any ribald interpretations. ;-)
Difference between "separate ... modules" and "multi-process" noted. I was thinking separate processes due to having seen processes named things such as "cc1", "as", and "ld" on various systems since the middle 1980s. I did not intend to imply SMP but was thinking more of temporary files or pipes sitting between the processes.
--
Robert Riches
spamtrap42@jacob21819.net
(Yes, that is one of my email addresses.)
10 x 14" platters was up to around 300MB by end of the 1970's. I still have a 300MB head-alignment pack in my garage (it's head-crashed on about half the surfaces - an expensive mistake by a field engineer who failed to clean up and repair a head crash well enough before starting to realign the heads). I did a lot of software work on these drives - getting max possible speed from them during filesystem garbage collection.
There was also a 600MB version of the same design, but the packs were not exchangable and drive covers could not be opened by operations staff. I think that's as big as 14" disks got before being superceeded by 8" disks.
--
Andrew Gabriel
[email address is not usable -- followup in the newsgroup]
-- Steve O'Hara-Smith | Directable Mirror Arrays C:>WIN | A better way to focus the sun The computer obeys and wins. | licences available see You lose and Bill collects. |
-- The biggest threat to humanity comes from socialism, which has utterly diverted our attention away from what really matters to our existential survival, to indulging in navel gazing and faux moral investigations into what the world ought to be, whilst we fail utterly to deal with what it actually is.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.