[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y ] [Search | Home]
4Archive logo
/dpt/ - Daily Programming Thread
If images are not shown try to refresh the page. If you like this website, please disable any AdBlock software!

You are currently reading a thread in /g/ - Technology

Thread replies: 320
Thread images: 22
File: 1449091772190.jpg (376 KB, 2500x1000) Image search: [iqdb] [SauceNao] [Google]
1449091772190.jpg
376 KB, 2500x1000
Old thread >>52274940
>>
Do doubly linked lists have any use other then multi-threading?
>>
How do I into neural network?
>>
How do I learn JavaScript?
>>
>>52278465
>Do doubly linked lists have any use other then multi-threading?
What have the got to do with multithreading? And yes.
>>
>>52278441
import faggot
print "op is a faggot"
>>
>>52278686
>op is a faggot
It's 2016 and people still say this beaten to death meme.
>>
File: op.gif (996 KB, 150x148) Image search: [iqdb] [SauceNao] [Google]
op.gif
996 KB, 150x148
>>52278703
>>
>>52278661
http://programming-motherfucker.com/become.html#JavaScript
>>
>>52278661
1. forget anything you've learned before that isn't JavaScript
2. Accept C and other meme languages are shit
3. Learn JavaScript
>>
>>52278864
>Accept C and other meme languages are shit
>>>/wdg/
>>
File: d.png (11 KB, 680x118) Image search: [iqdb] [SauceNao] [Google]
d.png
11 KB, 680x118
>>52278748
>he [sic]
The writer of eloquent JavaScript was triggered by the use of the word "he" in this quote, wasn't he?

How am I supposed to take this book seriously knowing this?
>>
>>52278914
I don't give a fuck about what you do with your life.
>>
Pop quiz /g/.
Do you know why the exponent field comes before the fraction field in a floating point number? There is a very good reason for it.
>>
Threadly reminder that:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one- and preferably only one -obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than*right*now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea—let's do more of those!
>>
>>52278935
Because it's more significant?
>>
>>52278935
So you can truncate the fraction part
>>
Working some more on how the language will be compiled/implemented, especially with respect to recursion. I've decided to do away with the formal definition using fixed points of functors and various algebras and morphisms, and instead stick with recursive definitions (which are easier to compile efficiently).

For recursive data types like "Nat", I've introduced the "rec" type constructor (which is just a pointer) as well as the "in" and "out" operators, which basically mean "new; store" and "read; delete", to work with linearity. Corecursive data (codata) types will have a dual for each of these, something like "corec", "delay", and "force", the latter two names reflecting how codata is implemented using thunks.

One great property of this method is that the compiler can detect expressions like
in (f (out x))
, where "f" is an endomorphism (actually, as long as the output type is the same size as or smaller than the input type), and implement it as mutation without any allocation or freeing of memory.

High level:
data Nat : Set where
Zero : Nat
Succ : Nat -> Nat

double : Nat -> Nat
double Zero = Zero
double (Succ m) = Succ (Succ (double m))


Core:
Nat : Set
Nat = (i : Fin 2) & case i of {
0 => Fin 1;
1 => rec Nat
}

double : Nat -> Nat
double = \m => let i, v = m in case i of {
0 => 0, v
1 => 1, 1, in (double (out v))
}
>>
File: hpsh.png (18 KB, 890x560) Image search: [iqdb] [SauceNao] [Google]
hpsh.png
18 KB, 890x560
Working on my RPN shell. I'm starting to implement reading file. Like that I could implement stdlib using my shell and not by implementing it in the source code of the shell. After that I will start to work on fork, exec and piping processed.
>>
File: ew.png (272 KB, 470x624) Image search: [iqdb] [SauceNao] [Google]
ew.png
272 KB, 470x624
I love Sizzle tbqh senpai.

Way better than JQuery bloat.
>>
>>52279256
Just realized there's a mistake in the core code:
double = \m => let i, v = m in case i of {
0 => 0, v
1 => 1, in (1, in (double (out v)))
}
>>
WTF is wrong with AIDE? Is it just me?
I'm trying to make a shitty Android app in C++, but AIDE won't even save the file.
When I hit 'save' (or Ctrl+S on my keyboard) it just says I have to pay for some premium version to unlock 'saving all projects'. I'm trying to save a single file.

What do I do?
>>
File: pythonlogo.jpg (46 KB, 680x459) Image search: [iqdb] [SauceNao] [Google]
pythonlogo.jpg
46 KB, 680x459
is python shit?
>>
>>52279503
Yup
>>
Just finished up work on an HTML5 chatroom:
http://www.raskie.com/#on-notice

Currently planning something new.
Got a Kinect 2 here... Any ideas?
>>
>>52279503
No
>>
>>52279561
>http://www.raskie.com/#on-notice
did you design that yourself?
>>
>>52279256
>>52279417
A similar optimization can be done with codata, where an expression like
delay (f (force x))
doesn't actually create a new thunk, it simply maps "f" to it such that when it's forced, its value is "f x".

Example for codata and corecursion:
codata Stream : Set -> Set where
_::_ : a -> Stream a -> Stream a

map : !(a -> b) -> Stream a -> Stream b
map f (x :: xs) = f x :: map f xs

compiles to:
Stream : Set -> Set
Stream = \a => a & corec (Stream a)

map : !(a -> b) -> Stream a -> Stream b
map = \f => \xs => let x, xs = xs in f x, delay (map f (force xs))
>>
>>52279581

Why?
>>
>>52279624
I'm curious
>>
>>52279503
Yeah, although I quite like it for my current project because it's really easy to use
>>
>>52279639

No. it was a team of 16.
>>
>>52279663
for college or something?
>>
>>52279449
just use GNURoot Debian and use all the Linux apps you need on Android
>>
>>52279503
There are good aspects of it that make it very good for writing small and medium-sized programs (everything is an iterator, large standard lib and larger number of community libraries). As with all languages it has it's warts and it's bad design decisions (significant whitespace is just dumb, bracketed or wirthian languages are easier for readability if done correctly imo).
>>
>>52279503
Python is very slow, but comfortable. You should try C++ or C#
>>
>>52279503
absolutely
>>
I'm writing game like Mario. SFML and C++ are good idea?
>>
File: SHA256.png (8 KB, 529x156) Image search: [iqdb] [SauceNao] [Google]
SHA256.png
8 KB, 529x156
I finished implementing SHA256 in Lua
Here are some test hashes, hot off the presses
>>
>>52279690

No. Just me in my personal time.
The initial hack took about a day. I wrote it to learn, but the early tests were quite good, so I cleaned up the code and the UI. Marionette is ok, but most JS frameworks are overcomplicated bloat.

Wish I wrote some tests though, but funnily enough, through manual testing, I've taken care of a load of issues that an automated test suite would have frankly missed.

Next project though.

Btw, any Kinect 2 ideas?
>>
>>52279744
>SFML
You could probably get away with something even simpler for a side-scroller. Lua and Love, or Python and pygame. It would drastically improve dev time, if you know the languages that is...
>>
>>52279786
Noice. Post source.
>>
>>52279744
http://polycode.org/?
>>
>>52279788
Where did the 16 people come from? 16 people just to design it?

>through manual testing, I've taken care of a load of issues that an automated test suite would have frankly missed.
This is why TDD is a huge waste of time unless it's done very thoughtfully.
>>
>>52279830
Code was too long for 4chin.
http://pastebin.com/7FUTrZQZ
>>
>>52279821
Linux >>52279839
Should it work on 64 bit Ubuntu 15.04?
>>
>>52278914
>[sic]
What a colossal faggot
>>
File: Untitled.png (619 B, 250x250) Image search: [iqdb] [SauceNao] [Google]
Untitled.png
619 B, 250x250
hey guys i had a problem so i thought to use java

Now i have a ProblemFactory..

what do?
>>
>>52279839
Should do. But I've not tried it yet.
It looks great though. Much like an opensource Unity.
>>
>>52279846

I'm trolling. It's just me.
TDD has it's place, but is it really for user interfaces? You might have half a chance auto testing a UI with a BDD strategy though. That might included videogames too.
>>
>>52279922
you need to IoC that bitch so make an AbstractProblemFactoryBean
>>
>>52279922
refactor into a ProblemSingleton
>>
File: 1286228503366.png (359 KB, 698x563) Image search: [iqdb] [SauceNao] [Google]
1286228503366.png
359 KB, 698x563
>bean
>java
>coffee
>coffee bean
>>
def trip_check(a, b, c):
if (a**2 + b**2) is c**2:
return True
else:
return False


def trip_check(a, b, c):
if (a**2 + b**2) == c**2:
return True
else:
return False


Python code bug.

If I enter trip_check(3,4,5) and trip_check(6,8,10) they both return true however when I enter trip_check(12,16,20) it returns false for the top case?

What's the difference between is and ==?
>>
How do you get into programming as a beginner? I'm studying Computer Information Systems but we've only had one small course in Java and it fucking sucked dick. I can't program to save my life and I'm supposed to work with that shit in a year. How to save future career?
>>
>>52280182
https://docs.oracle.com/javase/tutorial/
>>
>>52278943
There should be one- and preferably only one -obvious way to do it.
somebody hasn't heard of TIMTOWTDI
>>
>>52280182
Give up because you'll never make it
>>
>>52280161
"is" checks that they are the exact same object. I guess Python caches small numbers, just like Java.
>>
>>52280229
kinda this tbqh famm

if you struggled with the course you're probably dumb as shit
>>
>>52280214
It was as easy as that, huh?

>>52280229
Thinking about it
>>
>>52280161
is checks if the variables point to the same thing.
== checks if the values of the variables are the same.
>>
>>52280246
I didn't struggle with the course so much as they didn't teach us shit. I passed the course and I still can't code to save my life.
>>
>>52280270
Write a program that can average two ints.
>>
>>52280240
>>52280256

why would is work for the first 2 cases of 3,4,5 and 6,8,10. Is it due to the way memory is held? caching is it called?
>>
>>52280270
well ok you can go through >>52280214 and then start working on some small project and google things as they come up
>>
>mfw there's a gcc port for android
>>
>>52280270
why is this code wrong?

public int test(String number)
{
return number+2;
}
>>
>>52280246
>>52280249
Most everyone should give up because they'll never make it.
>>
>>52280298
5 ** 2 is 25 so if it stores numbers 32 or 64 and smaller as special reusable objects then 25 is 25

10**2 is 100 so if it doesn't have a special object for that then it creates separate objects for (a**2 + b**2) == c**2

similar thing in java when you need to use foo.equals(bar) instead of foo == bar when comparing the referenced values instead of the references themselves
>>
>>52280298
probably, or somewhere in byte code they are optimized to be handled a certain way maybe. if you want to compare values just use ==, and if you want to compare if two variables are literally the same object then use "is"
>>
>>52280354
>String number
>>
>>52280354
public int test(String number) {
return Integer.parseInt(number) + 2;
}
>>
File: gvv.png (35 KB, 1239x508) Image search: [iqdb] [SauceNao] [Google]
gvv.png
35 KB, 1239x508
Do you think post numbers look better with a hashtag senpai?
>>
>>52280447
No.
>>
>>52280354
I'm gonna guess because it's supposed to be an int and not a string and it can't add a string with int?
>>
@52280457

ok then
>>
>>52280447
>>
>>52280457
I see what you did there, you autist.
>>
Do you fags seriously believe you'll make it as a programmer?
>>
>>52280496
hehe
>>
>>52280500
i believe i'll make it

i'm a genius but many non-geniuses can still get a decent programming job at least
>>
>>52280500
Already made it bro.
>>
>>52280463
you guessed right.
next question:

Given 3 int values, a b c, return their sum. However, if one of the values is 13 then it does not count towards the sum and values to its right do not count. So for example, if b is 13, then both b and c do not count.

luckySum(1, 2, 3) → 6
luckySum(1, 2, 13) → 3
luckySum(1, 13, 3) → 1

public int luckySum(int a, int b, int c) {
// your code here
}

>>
>>52280542
This isn't a homework forum you faggot.
>>
>>52278864
>4. write firmware, kernels, drivers, and system tools in JavaScript

kek
>>
>what are you working on?
thanks for asking
writing a game similar to space invaders in c with allegro
first graphical thing im writing, but i've gotten pretty far considering i started today
>>
>>52280580
why so mad, anon?

let it all out
>>
>>52280542

public int luckySum(int a, int b, int c) {

int d = 0;

if (a == 13) {
d = b+c;
return d;
} Else if (b == 13) {
d = a+c;
return d;
} Else if (c == 13) {
d = a+b;
return d;
} Else {
d = a+b+c;
return d;
}
}

Maybe? I don't know of the syntax is 100% correct, it was a year ago we had the Java class
>>
>>52280533
>>52280535
You'll never be the next John Carmack or Dennis Ritchie
>>
>>52280542
here's your homework
return a != 13 ? a + (b != 13 ? b + (c != 13 ? c : 0) : 0) : 0;
>>
>>52280753
but i'm John Carmack.
i'm just posting as anonymous.
>>
>>52280395
The first 2 really shouldn't work. I think it should be reported, but god know Guido would just ignore it. IT'S A FEATURE!! Everything is an object is dumb.
>>
File: kitten huffing.jpg (17 KB, 288x352) Image search: [iqdb] [SauceNao] [Google]
kitten huffing.jpg
17 KB, 288x352
What are some good C books that aren't K&R?
>>
>>52280764
>>52280580
>homework
this problems were for that guy who was asking about coding saving his life.

i already wrote 3 compilers in C, java and python so fuck off
>>
>>52280674
>if (a == 13) {
>d = b+c;
>return d;
He said nothing to the right counted. You understand how to code, but can't follow directions apparently.
>>
>>52280825
>He said nothing to the right counted.
Welp, I missed that.. guess I'm a glorious winged faggot.
>>
>>52280812
i don't care if it's actually your homework, i just want to say it's your homework.
>>
>>52280797
None because you'll always be a nobody.
>>
>>52280542
sum $ takeWhile (/= 13) [a,b,c]
>>
>>52280870
This is a little story about four people named Everybody, Somebody, Anybody, and Nobody.

There was an important job to be done and Everybody was sure that Somebody would do it.

Anybody could have done it, but Nobody did it.

Somebody got angry about that because it was Everybody's job.

Everybody thought that Anybody could do it, but Nobody realized that Everybody wouldn't do it.

It ended up that Everybody blamed Somebody when Nobody did what Anybody could have done
>>
>>52280753
i don't want the fame

just a healthy amount of wealth
>>
anyone know where I can get binaries for Qt4?

what would the package be called on the repository? And yes I've tried qt4
>>
>>52280870
go home, your drunk
>>
>>52280951
http://www.npcglib.org/~stathis/blog/precompiled-qt4-qt5/
>>
>>52279883
Why not just use the JIT's bit library? Good job on the implementation. It's simpler than I thought it was. I've been meaning to write exactly that for CC ('lol minecraft', get over it) because I've been trying to write a secure messaging protocol for it. The way the messaging system in CC works is that all computers on a network get all messages sent by the copmuters on that network. Each computer only responds to the messages addressed to it. However, it's really easy using the lower-level communication library to read messages not intended for you to see. Hence the need for a pure lua encryption protocol.

It's just a little experiment, no one actually gives a damn if some fucking 14 year old sees their message.
>>
Just when you thought you'd never see a 15 year old's forum sig tier OP image ever again.
>>
>>52280992
>for MSVC
this is going to cause problems
>>
>>52279503
What's Python even used for?
>>
>>52278441
Why is it called Daily Programming Thread and not Daily Coding Thread? It'd be less threatning.
>>
>>52281130
for coding we have >>>/g/wdg and >>>/vg/agdg
>>
>>52281164
sick burn me m8
>>
>>52281103
coding
>>
>>52281177
Well, shit
>>
>>52281103
anyone who is into computer science proper uses python
>>
Pascal vs C?
>>
>>52281259
             .-:/+ooooooo++/-.`
`-/osyyyyyyyyyyyyyyyyso/.`
.+syyyyyyyyyyyyyyyyyyyyyyyys:`
.+yyyyyyyyyyyyyyyyyyyyyyyyyyyyys:`
`/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo.
`+yyyyyyyyyyyyyyso+///+oyyyyyyyyyyyyys.
+yyyyyyyyyyyyyo-` ./yyyyyyyyyyyys`
-yyyyyyyyyyyyy/` :yyyyyyyyyyyh:
oyyyyyyyyyyyy+ ////////////-
`syyyyyyyyyyyy-
.yyyyyyyyyyyyy`
.yyyyyyyyyyyyy`
`yyyyyyyyyyyyy.
syyyyyyyyyyyy+ .-----------.
/yyyyyyyyyyyyy- `yyyyhyhhhhyh+
`syyyyyyyyyyyyy/` `ohyyyyyyyyyyy-
.syyyyyyyyyyyyyy+-.```.-+yhyyyyyyyyyyh+
.syyyyyyyyyyyyyyyhyyyhhyyyyyyyyyyyyy+
`+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy:
.+yyyyyyyyyyyyyyyyyyyyyyyyyyyy/`
`:oyyyyyyyyyyyyyyyyyyyyyyo:`
`.:/ossyyyyyyyyyso+:.`
```..````
>>
>>52281243
you mean first year cs students and professor dudebros

python has no inherent advantage for use in computer science other than being very easy to learn (the basics at least) and having a syntax that vaguely looks like pseudocode
>>
Alright everybody, codegolf FizzBuzz in your preferred language.

for(i=0;++i<101;)console.log((i%3?'':'Fizz')+(i%5?'':'Buzz')||i)
>>
File: barks-internally.jpg (73 KB, 524x468) Image search: [iqdb] [SauceNao] [Google]
barks-internally.jpg
73 KB, 524x468
>>52281243
>>
>>52281259
This question have more than one answer.
What you wanna do?
>>
>>52281283
Compiler for a toy language.
>>
>>52281103

scientific computing among other things
>>
C# or C++ for 2D games?
>>
>>52281295

use c++ and boost::spirit
>>
>>52281243
>This is what delusional blubfags believe

It's kind of sad really
>>
>>52281315
C++
>>
>>52281259
https://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C
>>
>>52281259
Pascal was a great language for its time, there were more Pascal compilers for personal computers in the 70s and 80s than for C. Its fast and is safer than C. Its not quite as good for systems programming because of its strong typing.
>>
>>52281315

Use whatever the fuck you want.
>>
>>52281315

c# and unity will be good for you probably
>>
>>52281315
C, you pussy!
>>
Is there such thing as too old to learn to program?
>>
>>52281321
>c++

No.

>>52281335
>not quite as good for systems programming because of its strong typing

How come?
>>
>>52281336
K.
I'll write copy ofario in BrainF*ck ;D
>>
>>52281351

No
>>
>>52281315
Prolog
>>
>>52281351
maybe too old to get into it as a profession but as a hobby i don't see why not
>>
>>52281340
>unity3d
>bloated drag n' drop engine originally designed for 3d games
>for a 2d gaym that will have no use for 3d physics and such things
please go back to >>>/vg/agdg
>>
>>52281351
There isn't, but I won't sugar-coat it - it'll be harder than learning to program as a kid or something.
>>
>>52281361
https://www.lysator.liu.se/c/bwk-on-pascal.html
>>
>>52281361

Why not c++? It probably has the best tools for exactly the type of thing you are trying to do. Why the fuck would you use c to write a compiler?
>>
>>52281351
There's a saying,
If you didn't start at 8, it's too late.
>>
>>52281351
nope, i started at 23.
>>
>>52281351
It depends on the language, really. If you're trying to learn C or C++, then over 20 is pushing it, since there's so much to learn (kind of like learning to speak mandarin). However, if you aim to learn a language with a clean design, like common lisp, then it'll be a piece of cake, even if you're 80.
>>
Posting here since no one at /sqt/ answered
>>52278340
>>52280139
>>
>>52281015
I didn't use LuaJ's library because I wanted it in pure Lua. 5.1 also doesn't have the native bit32 manipulation library, as that was first included in 5.2. I've heard of CC and that was one of the reasons I actually wanted to try this, and I know that if I wrote it in pure Lua and include any other libraries I need myself then it will definitely be portable. The other reason was I just wanted to muck about in crypto stuff, I've always found it interesting
>>
File: putin.jpg (42 KB, 406x422) Image search: [iqdb] [SauceNao] [Google]
putin.jpg
42 KB, 406x422
>>52281386
oshit, I started at 9... IT'S TOO LATE
>>52281390
>maximum troll
>>
>>52281388
cool, I'm 22 and was a bit worried it was too late to get started on it.

>>52281390
I thought C was a recommended beginners language?
>>
>>52281390
>if you're trying to learn C or C++, then over 20 is pushing it,

please anon, you're memeing too hard
lisp is unintuitive shit and any C or C-like language is piss easy to learn because all languages in use today look and feel like C.
>>
>>52281373

yeah man there are way huge differences between physics in 2d and physics in 3d. graphics in 2d are also way different than 3d. what is a vector. what is a dimension. im a dumb ass bitch who speaks with authority on shit i dont know anything about.
>>
>>52281414
No, you're the troll you fucking blubfag. Steering people away from common lisp is fucking disgusting.
>>
>>52281386
https://youtu.be/jskq3-lpQnE?t=127
>>
File: ashit.jpg (956 KB, 1456x1008) Image search: [iqdb] [SauceNao] [Google]
ashit.jpg
956 KB, 1456x1008
>>52281436
Sorry, not taking the bait :^)
>>
>>52281378
Thanks.

>>52281384
I just don't like it, it's ugly, verbose, and an awkward mix between high level abstractions (most of which I don't need) and low level imperative programming. C seems almost perfect to me for writing a compiler.
>>
>>52281418
>I thought C was a recommended beginners language?
ANSI C (the standardised, "correct" version of C) is definitely not for beginners, because there's so much in the language that is open to interpretation, making your programs fragile/unportable. C++ is even worse (same problem as C + lots more shit embedded in the language). Steer away from these two at first.

If you really want to learn something like C, then try Java first. But if you want to learn to be a proper programmer and not just a shit-flinging codemonkey blubfag, then learn common lisp.

>>52281420
Lisp is as unintuitive as any other language to a beginner; You've got your view warped because you're already used to C.
>>
>>52281425
nigga you don't need a babby engine for a 2d game. you can use for example a physics engine like box2d but you don't need the full Unity Engine Enterprise Edition™. literally what would you even use it for?
>>
>>52280592
>vid related
it doesn't have any real gameplay yet, since the enemies are just standing there, but i'll figure something out later to make it more interesting
plan is to have them shoot back and move while gradually increasing difficulty
>>
>>52281395

You can use QT for what ever you want, freely, but you have to make the resultant project open source. But, if you're creating a commercial project, you have to pay them upfront. Interesting terms.
>>
>tfw learnt C++03 (or 07, I can't remember) back in uni

C++11 and C++14 add so much shit it's insame
>>
>>52281479
enumerated types on common lisp
;; symbol to number
(defconstant +apple+ 0)
(defconstant +banana+ 1)
(defconstant +cherry+ 2)

;; number to symbol
(defun index-fruit (i)
(aref #(+apple+ +banana+ +cherry+) i))


enumerated types in C
typedef enum { apple, banana, cherry } fruits;
>>
>>52281465

I don't get why you slander an entire language as 'ugly and verbose', as if you can't write shitty code in any language. Take a look here:

https://en.wikipedia.org/wiki/Comparison_of_parser_generators

Notice how there are no parser generators which take c as an input language? You should re-evaluate your opinion that 'c is the perfect language in which to write a compiler'.
>>
>>52281509
They add and take away.

https://github.com/isocpp/CppCoreGuidelines
>>
>>52281378
Note that this is from 1981, and when you use "Pascal" these days you are more likely using an extension that "fixes" many of the topics of this article (like including better ways of breaking strong typing for systems programming). But in that case I don't think it's exactly fair to compare with C, since many of these extensions include tons of other additional features (OOP, big standard libraries, etc.).
>>
>>52281524
>>52281524
so is common lisp as a first language a bad idea?
>>
>>52281585
Again, it really depends on what you're trying to do and how much effort you're willing to put in. But whatever you do, please do not learn C nor C++ as a first language (definitely learn C as a second language though).
>>
>>52281585
Yes, you're being memed on.
Common lisp is an ancient language that predates C and is not useful for modern programming.

C is a nice beginner language because it's a tiny language and it's standard library is so small you can learn it by heart.
>>
>>52281585
Haskell is a better first language.

However, if you actually want to do something BESIDES stroke theoretical-programming-language-researcher cock, learn a new and useful language that solves a few big challenges:

LEARN JULIA
http://julialang.org/
>>
>>52281585
imo yes

better than python but worse than java/C++/C#
>>
>>52281483

durr whats a game engine. uhhh duhhhh you dont need that just write one in c. introduce a ton of dependencies to your projject to handle all the different shit you need to do that works across eveyr single platform . guhhhh
>>
>>52281528
>Notice how there are no parser generators which take c as an input language?

That's because most parser generators take something like BNF. It would be inane to specify your grammar rules using an imperative programming language.
>>
>>52281243
lol
>>52281420
C is definitely harder to learn than any Lisp for a beginner. Maybe Java is about on par with some Lisps but there's so much irregularity and weirdness in C that's it would be insane to expect a beginner to learn all of that.
>>52281524
>one example means that language group a > language group b
not to mention that defining a macro for that would be piss easy, and is in fact already included in Scheme
>>
>>52281643
>C is definitely harder to learn than any Lisp for a beginner. Maybe Java is about on par with some Lisps but there's so much irregularity and weirdness in C that's it would be insane to expect a beginner to learn all of that.

you haven't posted a single example to back that up
I started with java and it made me hate programming until I found C++ and later C.
>>
>>52281626
>Common lisp is an ancient language that predates C and is not useful for modern programming.
Lol, you're so wrong, it hurts. Typical blubfag.
>>
>>52281628
http://danluu.com/julialang/

>Update: this post was edited a bit to remove a sentence about how friendly the Julia community is since that no longer seemed appropriate in light of recent private and semi-private communications from one of the co-creators of Julia.
>>
>>52281378
>>52281559
I skimmed through it, interesting read. Am I correct in thinking Object Pascal addresses most of these issues?
>>
>>52281640

...right, so c is inadequate at the task of grammar specification... keep going...
>>
>>52281637
>muh magic black box GAYM ENGYN
>look mum i'm programming xd
>muh 30 fps android port that barely even works xd
>>
Hey guys, I never post but I wanted to say I just got a job as a junior Dev out of college as an econ student and it's awesome.
>>
>>52281774
nice
>>
>>52281754

> game engine
> black box
> whast a game engine
>>
>>52281694
Yes
>>
>>52281676
>you haven't posted a single example to back that up

Common Lisp
(setq a "mystring")
(setq b "mystring")
(equals a b)


C
#include <stdio.h>
#include <string.h>

int main(void) {
char a[9]; //let's hope the user doesn't try to use anything other than UTF-8 or pass in a longer string
char b[9]; //and don't forget the super intuitive null-terminator

scanf("%s%s", a, b);
int result = strcmp(a, b); //What's that warning about dropping a const thing?
//Ignore it, lol
printf("The strings are: ");
if(result == 0) { //Please be very careful editing this, we don't want to accidentally *set* result to 0
puts("equal");
} else {
puts("not equal");
}
}
>>
>>52281676
couldn't find exactly the page I was looking for, but this is a decent example of what I mean: http://kukuruku.co/hub/programming/i-do-not-know-c
basically, nearly everything about C is fucked up because of undefined behaviour, overlapping standards, compiler bugs, and non-standard extensions for some compilers make it impossible to know exactly how a lot of real-world pieces of code will run without knowing the peculiarities of the compiler being used and exactly how it will output the assembly.
>>
>>52281835

damn yall are seriously comparing a functional programming language and an imperative programming language. nice job retards.
>>
File: bait-chan.jpg (62 KB, 563x701) Image search: [iqdb] [SauceNao] [Google]
bait-chan.jpg
62 KB, 563x701
>>52281835
>someone unironically went to the trouble of writing this shit out in the tersest possible way

anon...
>>
>>52281831
>it's not silly and pointless... it's a GAME ENGINE xddd
>>
>>52281868

i love when someone tries to demonstrate how shitty a language is by using it poorly. it reminds me of informercials where you see retarded actors trying to use a hammer or some shit to get a cup of juice out of the fridge and the ad is like "THIS IS WHY YOU NEED TO BUY THE JUICE GRABBER"
>>
>>52281750
I'm not sure where you're going with this. When did I ever say I was going to use C to specify grammar? SPECIFYING and PARSING are two completely different things, one of which C is suited to just fine.
>>
>>52281868
>someone unironically went to the trouble of writing this shit out in the tersest possible way

This is exactly how a beginner would write this you blubfag
>>
>>52281838
What the hell is this article?
Is this man complaining about the C language being consistent?
>>
>>52281835
the CL doesn't tell you anything about how it works behind the scenes. in C any beginner can loop through a char array and compare each char, and they will have an idea of what the computer is actually doing.
>>
File: 1451972624058.jpg (131 KB, 600x850) Image search: [iqdb] [SauceNao] [Google]
1451972624058.jpg
131 KB, 600x850
How hard would it be to program an AI to act like Maki?
>>
>>52281901
>This is exactly how a beginner would write this you blubfag

char a[] = "mystring";
char b[] = "mystring";
printf("%s", (strcmp(a,b) == 0) ? "true" : "false);
>>
>>52281899
>using it poorly

Even when used correctly it's still a landmine of bugs and errors waiting to happen. Just look at heart bleed.

>inb4 you never made a mistake while learning
>inb4 you are better than the OpenSSL devs
>inb4 you are perfect
>>
>>52281905
Understanding a computer is not a newbie's goal. A newbie's goal is to understand the logical underpinnings of programming.

>>52281899
See >>52281901
>>
>>52281900

Sorry, I didn't realize your plan to build the parser was to just pull it out of your ass.
>>
>>52281905
>they will have an idea of what the computer is actually doing

Then why not learn assembly instead?
>>
>using any language not based around algebraic types and recursion to implement a compiler
>>
>>52281936
>logical underpinnings of programming
>(equals a b)
much logic
very profound
wow

my point is that the beginner can do it without you having to tell them that there is a magic function/keyword called "equals". you can just tell them what a string in C is and ask them to compare them.
>>
>>52281947
Well, yes, a simple parser is trivial to write. Even if I did use a parser generator, yacc, bison, etc., all output C. Again, not sure where you're going with this.
>>
>>52281930
>Beginners
>Using the ternary operator
And that shit won't even compile, try it for yourself.

The only fair point you raised is about the arrays (I didn't need to give them a size nor was it fair to use string literals in common lisp and read from stdin in C). To rectify this, consider the following code instead:

(setq a (read-line))
(setq b (read-line))
(equals a b)


Now it's a fair comparison.
>>
>>52281903
it's talking about how difficult it is to understand what will happen by just looking at a piece of code without having years of experience with C. this isn't as good as the one i was trying to find, which illustrates the specifics of how each compiler handles certain behaviours (both defined and undefined ones) and why even common pieces of code won't run correctly if you just switch to a different CPU architecture or OS, for example, because of implicit semantics that are determined at a lower level than the compiler, despite being considered "standard" behaviour by most C programmers
and even things that have made their way into modern C but just don't make sense in the context of any "sane" language are a huge confusion because of ill-designed syntax that just doesn't make sense intuitively
>>
What's so great about lisp?
>>
>>52281932

lmfao okay. "Just look at heart bleed." How about you explain the heart bleed bug to me and how it was a direct result of language-design time decisions made re: c. This'll be rich. lmfao
>>
>>52282017
It doesn't get in your way too much.
>>
>>52282017
it keeps assburgers away from C/C++
>>
>>52282008

I think that's fine actually. But you said you were going to write it in c. Not that you were going to write part of it in c and then generate c from EBNF or something. Do you say you are writing ia32 if that is what you are generating from your compiled c code too?
>>
>>52281975
>my point is that the beginner can do it without you having to tell them that there is a magic function/keyword called "equals". you can just tell them what a string in C is and ask them to compare them.

"equals" is not a magic function. It's very easy to understand and all it requires you to do is read the hyperspec. By that logic, declaring a string in C is magic because a beginner would need to learn about arrays and pointers just to read a fucking string from stdin and save it.
>>
>>52282079
the equivalent of "equals" would be strcmp. you don't need to use strcmp to compare the strings, you can just iterate through the char arrays.
>>
>>52282049
>Blubfags
>Insulting anyone else
>>
>>52282017
it's great for defining DSLs, for one thing
the macro systems are immensely powerful tools that let your code dynamically rewrite itself so you can optimize out runtime slow-downs, save yourself from writing boilerplate (or writing extra boilerplate to reduce boilerplate later on, as macros are quite simple to define), and change the way the syntax works for specific tasks.
for example, if you want to write your Racket code like you would Prolog, there's a DSL included in the standard library called Racklog that turns Racket into a logic programming language
another thing that's great about Lisps is how multi-paradigm they are, because the languages are all relatively small and simple and allow you to define new syntactic structures. so you could go and implement a class/object syntax in your favorite Lisp, or you could program in a purely functional way if you wanted to, etc. compared to other languages that have "big agendas" (for example, Java's insistence on OOP everywhere or Haskell's required functional purity), Lisps say very little about what is and isn't possible
>>
>>52282092
>smug lispfag
>thinks he isn't an assburger
>>
MongoDB

Opinions?
>>
>>52282079
All they have do is learn about pointers and that an array is a block of data with a pointer to the 0th array member and from that, you can segue into char arrays and how there's no strings in C, only char arrays, and that logically, a string in C is a pointer to a array of chars.

THE END.
>>
>>52282102
shit. serious shit.
>>
>>52282115
why
>>
so how difference are common lisp, emacs lisp, and scheme?
>>
>>52282102

Its a perfectly adequate non-relational database technology
>>
>>52282029
I don't see any need to explain it, you can look it up yourself if you don't already know. C is notorious for how unsafe it is, the fact that it even lets you read invalid memory speaks volumes. All this adds up to a language not suited to beginners.
>>
>>52282091
Nor do you need to use equals to compare the strings, you can look at them as arrays, use aref to get each character in a loop, and then use eq to compare each character, using an unless to check for differences.
>>
>>52282135

LMFAO KEEP DUCKING AND WEAVING NIGGA
>>
>>52282146
You can do the same thing in C, but there's no need because strcmp does the same thing
>>
>>52282135
>i have no idea what i'm talking about
>>
>>52282100
>>52282152
Traps and gentlemen, these are the blubfags defending C: Rude, vociferous, arrogant and unlogical. They will gargle on C as if it were Dennis Ritchie's own C ock.

Meanwhile, the people defending common lisp are calm, collected, willing to substantiate their claims and friendly.

Make of this what you will.
>>
>>52282063
I'm still not sure what to generate yet. At this point I would rather a simple bytecode (so I get to write a VM) than messing around with executable formats.
>>
>>52281835
#include <string.h>
int main() {
char *a = "mystring", *b = "mystring";
return !!strcmp(a, b);
}


C string handling is more difficult than a lot of languages but you're just being deliberately misleading.
>>
>>52282192

> willing to substantiate their claims and friendly.
> I don't see any need to explain it, you can look it up yourself if you don't already know.

i mean i love lisp im pretty surprised it produced such a dumb ass lol
>>
>>52282130
http://hyperpolyglot.org/lisp
pretty big differences. the chart at the top is syntactic but the bottom talks some more about implementation details and such. note that the stuff about Racket there is basically identical to what it would be for Scheme (although there are a few minor differences).
>>
File: assburger.jpg (67 KB, 500x511) Image search: [iqdb] [SauceNao] [Google]
assburger.jpg
67 KB, 500x511
>>52282192
>
>>
>>52282121
NoSQL is a meme not suited for a professional set up. It's slower than most other DBs. In the past (not sure about recently) it had a probably with data loss. Not ACID.

I cannot fathom how people can take it seriously.
>>
>>52282215
See >>52282014

>>52282219
I'm not the person talking about heartbleed, but if you seriously think that C being the project's language had nothing to do with the bug, then you're deluding yourself.
>>
>>52282152
>>52282164
If you're so perfect why don't you explain why it wasn't the fault of C's poor memory safety?

>inb4 just don't write buggy code

The fact that C allows such a thing to happen in the first place is my entire point. It is not a language suited to beginners.
>>
>>52282257

> I'm not the person talking about heartbleed, but if you seriously think that C being the project's language had nothing to do with the bug, then you're deluding yourself.

Oh yeah? Care to explain why? CAN you?
>>
>>52281835
You forgot the fflush(stdin); below the scanf() to remove the newline left at the buffer.
>>
File: feelium.png (59 KB, 525x455) Image search: [iqdb] [SauceNao] [Google]
feelium.png
59 KB, 525x455
/g/, is there a JS library that will help me make friends?
>>
/g/, how much do you see yourself looking at old projects to take reference for what you're doing currently?

Like, there's a solution to a problem and you know the solution is something you did on a previous project but you dont want to think through the solution again

or maybe you just haven't memorized the steps, or the code that you used

how often do you do that? is that a bad thing to do?
>>
>>52282267
Not other poster, but the Heartbleed bug isn't some black magic. It's pretty easy to understand even if you don't know C.
>>
how do i learn java?
>>
>>52282267
>Care to explain why?
Not really, because I'm not that informed on the bug itself, just the generalities of it.

>CAN you?
Stop being facetious, you know as well as I do that it was caused by a buffer overflow.
>>
>>52282215
i'm pretty sure that doesn't do what you think it does
you're writing arbitrary data to random pointers instead of creating a char array on the stack
>>
>>52282314

> it was caused by a buffer overflow.

BZZZZZZZZZZZZZZZZZZZZZ. WRONG.
>>
>>52282285
you don't need friends
>>
>>52282340
http://stackoverflow.com/questions/23089964/is-the-heartbleed-bug-a-manifestation-of-the-classic-buffer-overflow-exploit-in

>>Is the heartbleed bug a manifestation of the classic buffer overflow exploit in C?

>No. The "classic" buffer overflow is one where you write more data into a stack-allocated buffer than it can hold, where the data written is provided by the hostile agent. The hostile data overflows the buffer and overwrites the return address of the current method. When the method ends it then returns to an address containing code of the attacker's choice and starts executing it.

>The heartbleed defect by contrast does not overwrite a buffer and does not execute arbitrary code, it just reads out of bounds in code that is highly likely to have sensitive data nearby in memory.

Call it a buffer overread if you'd like, you know exactly what I'm talking about you blubfag.
>>
>>52282340
It was a lack of bounds checking when it returned the string. Still a bug that could only happen in C.
>>
>>52282314
Buffer overflow was the vector they used to exploit the bug, but it was not the core flaw.
Even with bounds checked arrays you could still have the same effective problem if you stored sensitive data in the same buffer as the packet data.
>>
>>52282297
well i'll just ask again later
>>
File: pokemon.png (762 KB, 699x1003) Image search: [iqdb] [SauceNao] [Google]
pokemon.png
762 KB, 699x1003
>>52282352
Is it true that all I need is anime, cheetos, and mountain dew?
>>
There is literally nothing wrong with C
>>
>moving the goalposts

Staying on topic, the Apple SSL vulnerability is another example of why C is full of hazards and unsuited to beginners.
>>
>>52282357
>>52282359

here is the real CAUSE of heart bleed:

unsanitized library-user input

like most security flaws, it was naivette re: user input. what programming language keeps programmers from writing code which accepts explotive input again, c haters?
>>
>>52278703
>It's 2016
It's 2016 and people still use the "It's <current year> and ..." meme
>>
>>52282285
javascript:document.location.href='http://www.tsroadmap.com/index.html'


This JS will help you make a boyfriend, or possibly girlfriend if you're into that.
>>
Beginners are supposed to start with C so they can learn the fundamental concepts of computer programming in the best way, once they learn the basics of programming in C they move on to a better language where they can apply the knowledge that they learned in C. Noone expects beginners to actually start with C to write all their software.
>>
>>52282443
Being this arbitrary. It's a bug that could only happen in C, because C doesn't offer much protection to the programmer.
>>
>>52282401
>Apple SSL vulnerability
That had literally nothing to do with C.
A completely language agnostic bug because it was pure business logic error, like writing (x-y) when it was (x+y) that was wanted (in the actual case: not calling SLHashSHA1.final() when they should've)
>>
>>52278914
Jesus Christ. SJW's have to change the fucking language just to get off.

Pisses me off everytime
>>
had posted yesterday about how my professor was forcing us to use emacs, apparently it's because he's done some decent contributions to it, he's listed here:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Acknowledgments.html
>>
>>52279503
It's so concise. And it has forced whitespacing/indentation. For legibility it's god-tier. That's all I can say.
>>
>>52282464

Stop saying this if you won't tell me what it has to do with memory management in c
>>
>>52282465
>pure business logic error

Despite that, C allows unreachable code to exist. Had it thrown a compiler error instead this would not have happened.
>>
>>52278914
Wow, and I was about to read this book.
Fuck that.
And fuck javascript.
>>
>>52282536
I'm a different person, I have only said this once.

It has everything to do with memory management in C. There is no need to sanitize that kind of user input in almost any other widely used language. It's a design flaw, stand up and face the music m9.
>>
>>52282536
even though it really didn't have to do with memory management, it's still a bug that could be prevented by switching languages. using dependent types, the entire attack vector could have been prevented from the get go.
>>
>>52278914
Pardon my ignorance, but what is the problem with [sic]?
>>
>>52282565
>C allows unreachable code to exist.
Any decent compiler can warn for that.
But allowing unreachable code is useful when developing for temporarily turning on/off parts of the code.
>>
>>52282609
[sic] is used to denote that there was no mistake in transcription, it was copied exactly as written, spelling/grammar/logical mistakes and all.

He put [sic] after "he" because the author is a self-hating male feminist shitbag.
>>
>>52282594

> There is no need to sanitize that kind of user input in almost any other widely used language
> talks on matters of information security with authority

"that kind" of user input? what "kind" of user input precisely, pal? this is exactly the kind of user input you want to sanitize, genius. it affects the internal control flow and state of the service. goddamn why do you think you know anything about what youre talking about.
>>
>>52282628
I never said it wasn't useful, but it's things like this that make it very easy to write bad C code, which is my whole point of why it is ill suited to beginners.
>>
i swear i can't stop drinking. why is beer so good?
>>
File: beer is a meme.png (48 KB, 599x282) Image search: [iqdb] [SauceNao] [Google]
beer is a meme.png
48 KB, 599x282
>>52282673
>he fell for the beer meme
lel
>>
>>52282678

beer is GOAT though
>>
>>52282628
this. fuck go
>>
>>52282645
So the the bytes are written to a buffer, the program then returns that buffer, using the size provided by the user. It's vulnerable, because it doesn't check the size. It's a flaw in C, because it allows you to read past the end of something in memory without warning you.
>>
>>52282666

what makes it easy to write bad c code? that fact that if you write unreachable statements the compiler warns you? that makes no sense.
>>
>>52282678
kek
>>
>>52282673
It is real beer or sissy american beer?
>>
>>52282698
>>52282698
Wait, go really throws a shitfit if you keep unused functions and variables in your code?

why?
>>
>>52282701
>what makes it easy to write bad c code?

C doesn't provide good facilities to new users and manual memory management is its own can of worms. There's plenty of reasons.
>>
>>52282709

Both, even though I said I would stop drinking. 8% ABV+ all night.

Alcoholism is retarded. I hate it. I just can't stop.
>>
>>52282711
because assburger
>>
>>52282701
>the compiler warns you

Please tell me exactly where in the standard it says this is a requirement. Until you can my point still stands.
>>
>>52282594
>It has everything to do with memory management in C.
Guard page allocate every buffer with a non read/write/execute page directly after it = always segfault on out of bounds access.
On 32 bit you'd exhaust address space pretty quickly for large programs, but with 64 bit address space it's definitely a practical implementation.

>There is no need to sanitize that kind of user input in almost any other widely used language
Yes it is.
First off you wanna prevent DoS - allowing pathological sizes for user data will kill your server.
Secondly, out of bounds access isn't the only way to leak information, the sensitive data might actually be in the same buffer, then your 'safe bounds checked access' does nothing for you, but it could also be something like user data specifying a file or property to read, in which case you obviously wanna restrict that kind of access.
>>
>>52282738
>o-o-oh dennis ritchie, please, not so hard
>>
>>52282737
Who cares what the standard requires?
>>
>>52282594
Alternatively, you use a language where the type system is expressive enough that it doesn't allow you to NOT sanitize inputs. After the inputs have been sanitized, it can operate without any redundant runtime checks.
>>
>>52282781
>Who cares what the standard requires?
>>
>>52282780
kill yourself lispfag
>>
>>52282687
No. It's just cheap. That's it. Whiskey, brandy, wine, even vodka, literally anything is better than beer, but more expensive.
>>
>>52282790
blubfag on suicide watch
>>
>>52282699

Okay I think im beginning to understand how little you know about what you're talking about. Let me explain:

OpenSSL uses it's own hand-written memory allocators and memory pools, because it has very precise performance requirements that requires highly tuned memory management (Side note: This is a big reason why the OpenSSL designers implemented it in C in the first place. Or maybe it's because they were too stupid to use fucking javascript or whatever the fuck you're saying. You're dumb.). Using default c memory allocation and management schemes would have indeed triggered an interrupt, but the OpenSSL designers CHOSE NOT TO USE THEM TO GET CERTAIN PERFORMANCE GAINS.

If I implement my own hand-spun pool memory allocator in lisp, ruby, javascript, whatever the fuck, and then use an unsanitized value from a user to read a certain number of bytes from the pool, guess what. THE EXACT SAME THING WILL HAPPEN.
>>
>>52282737

ok, right, it doesn't. that's a very good point that is pertinent to this discussion about beginniner c programmers who are using a long forgotten compiler from 1985
>>
>>52282785

... so any language that has static typing and allows for user-defined types. like c. good one.
>>
NEW THREAD

>>52282853
>>52282853
>>
>>52282850
Show me a type in C that is only inhabited by unsigned integers less than N. I'll be waiting.
>>
>>52282785
>you use a language where the type system is expressive enough that it doesn't allow you to NOT sanitize inputs.
Doesn't solve the fundamental problem.
Oh, I was forced to unpack or handle unsafe data through some intermediate function/case? Oops my predicate x => x > 10 should have been x > 20, shit still breaks.
>>
>>52282862
Dumbass
>>
>>52282791

i honestly prefer beer. Not even for the purposes of intoxication. I just love the taste.
>>
>>52282862
goddamn, stop making these threads so early.
>>
>>52282866
What exactly do you mean? A proof of x > 10 is unusable if x is changed (or at least the proof has to be changed with it).
>>
>>52282900
Go cry to Mommy, faggot.
>>
>>52282913
>>
>>52282930
You're not helping.
>>
>>52282909
kill yourself, we haven't even reached bump limit.
>>
>>52282934
See you in the new thread kid.
>>
>>52282949
You know, this thread can last another 2 hours. Why do you feel the need to make another one so early?
>>
>>52282902
>(or at least the proof has to be changed with it).
And THAT is the fundamental problem.
"Types as theorems" just pushes the problem into the proofs, get the proofs wrong and your program will behave just as unexpectedly as a buffer overflow.
>>
>>52282961
shut up
>>
>>52282898
Pleb detected. I wish I could block you.
>>
>>52282976

Fucking faggot. I hate you. fuck FAGGOT.
>>
i vote for this thread: >>52282913

trap poster should kill himself
>>
>>52282963
You can't "get a proof wrong". A proof is a value of a type, and in a language based on a sound type theory you can't construct invalid proofs.

What I mean by "the proof has to be changed with it" is that if you have a value x and a proof x > 10, if you then add another 10 to x, you have to update the proof to be x > 20 (though this is a poor example since x > 20 implies x > 10). This is why languages with proofs tend not to have mutable variables.
>>
>>52282976
Just to clarify, this anon >>52282999 was not me. But he's right, you are a faggot.
>>
>>52283000
stop spamming the board you ginormous faggot
>>
>>52283010
>You can't "get a proof wrong".
>you can't construct invalid proofs.
By wrong I mean "not the output that was desired", not necessarily logically unsound.
After all there's nothing fundamentally illogical about an out of bounds access - to the computer it's exactly the same instructions.
>>
>>52283042
the trap poster is the one spamming the board

i didn't even post any thread because i didn't feel like posting a thread before the bump limit was necessary but obviously the trap poster knows no bounds and can strike at any given time
>>
>>52283058
Oh, I see what you mean.

If the language is entirely constructive, then there really is no way to do something like index a given array without using an index whose type forbids indices out of the array's bounds.

Now, you might ask, how does this apply to C-like access with pointer arithmetic? This is still being worked on, but to make a long story short, you have to prove (or more realistically, show through regression -- think Haskell QuickCheck) that the constructive structures are equivalent to the "native" structures. This is (the way I see it) a big part of homotopy type theory and the univalence axiom.

Bottom line is, it's basically impossible with the tools we have today to prove 100% that a program is correct if you also want it to use the fast paths of the hardware. But you can get it very close, and more importantly, you can significantly narrow down the parts where you'd have to look to fix an error.

This is what I'm "researching", incidentally, and one of the main goals I have with the language I'm developing is to see if this is really possible.
>>
NEW THREAD

>>52282913
>>52282913
>>52282913
>>
any bash faggots here? i'm at school , and teacher is sure we will learn bash making sitty scripts that just 'says happy b-fucking-day to all the guys written in to a list with fuck fuckfuck fuck fuck fuck fuckfuck. god damned i'm bored
Thread replies: 320
Thread images: 22
Thread DB ID: 369851



[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y] [Search | Home]

[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y] [Search | Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the shown content originated from that site. This means that 4Archive shows their content, archived. If you need information for a Poster - contact them.
If a post contains personal/copyrighted/illegal content, then use the post's [Report] link! If a post is not removed within 24h contact me at [email protected] with the post's information.